71 lines
2.2 KiB
Diff
71 lines
2.2 KiB
Diff
From: Karel Zak <kzak@redhat.com>
|
|
Date: Tue, 1 Apr 2025 17:45:01 +0200
|
|
Subject: fdisk,partx: avoid strcasecmp() for ASCII-only strings
|
|
|
|
Use cctype.h for locale-independent string comparison and to avoid
|
|
tricky string conversions like in tr_TR locales.
|
|
|
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
(cherry picked from commit 7efdcd75f041fa1cb9a7c05e22dea3567d48bf9e)
|
|
---
|
|
disk-utils/cfdisk.c | 3 ++-
|
|
disk-utils/fdisk-list.h | 4 +++-
|
|
disk-utils/partx.c | 2 +-
|
|
3 files changed, 6 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/disk-utils/cfdisk.c b/disk-utils/cfdisk.c
|
|
index d4057ee..d0bb57a 100644
|
|
--- a/disk-utils/cfdisk.c
|
|
+++ b/disk-utils/cfdisk.c
|
|
@@ -53,6 +53,7 @@
|
|
#endif
|
|
|
|
#include "c.h"
|
|
+#include "cctype.h"
|
|
#include "closestream.h"
|
|
#include "nls.h"
|
|
#include "widechar.h"
|
|
@@ -2507,7 +2508,7 @@ static int main_menu_action(struct cfdisk *cf, int key)
|
|
buf, sizeof(buf));
|
|
|
|
ref = 1;
|
|
- if (rc <= 0 || (strcasecmp(buf, "yes") != 0 &&
|
|
+ if (rc <= 0 || (c_strcasecmp(buf, "yes") != 0 &&
|
|
strcasecmp(buf, _("yes")) != 0)) {
|
|
info = _("Did not write partition table to disk.");
|
|
break;
|
|
diff --git a/disk-utils/fdisk-list.h b/disk-utils/fdisk-list.h
|
|
index 1839301..8e5ea58 100644
|
|
--- a/disk-utils/fdisk-list.h
|
|
+++ b/disk-utils/fdisk-list.h
|
|
@@ -11,6 +11,8 @@
|
|
#ifndef UTIL_LINUX_FDISK_LIST_H
|
|
#define UTIL_LINUX_FDISK_LIST_H
|
|
|
|
+#include "cctype.h"
|
|
+
|
|
extern void list_disklabel(struct fdisk_context *cxt);
|
|
extern void list_disk_identifier(struct fdisk_context *cxt);
|
|
extern void list_disk_geometry(struct fdisk_context *cxt);
|
|
@@ -51,7 +53,7 @@ static inline int wipemode_from_string(const char *str)
|
|
return -EINVAL;
|
|
|
|
for (i = 0; i < ARRAY_SIZE(modes); i++) {
|
|
- if (strcasecmp(str, modes[i]) == 0)
|
|
+ if (c_strcasecmp(str, modes[i]) == 0)
|
|
return i;
|
|
}
|
|
|
|
diff --git a/disk-utils/partx.c b/disk-utils/partx.c
|
|
index b0d552c..49d5061 100644
|
|
--- a/disk-utils/partx.c
|
|
+++ b/disk-utils/partx.c
|
|
@@ -162,7 +162,7 @@ static int column_name_to_id(const char *name, size_t namesz)
|
|
for (i = 0; i < NCOLS; i++) {
|
|
const char *cn = infos[i].name;
|
|
|
|
- if (!strncasecmp(name, cn, namesz) && !*(cn + namesz))
|
|
+ if (!c_strncasecmp(name, cn, namesz) && !*(cn + namesz))
|
|
return i;
|
|
}
|
|
warnx(_("unknown column: %s"), name);
|