File: libmount-avoid-strcasecmp-for-ASCII-only-strings.patch

package info (click to toggle)
util-linux 2.41-5
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 95,208 kB
  • sloc: ansic: 179,016; sh: 22,689; yacc: 1,284; makefile: 528; xml: 422; python: 316; lex: 89; ruby: 75; csh: 37; exp: 19; sed: 16; perl: 15; sql: 9
file content (37 lines) | stat: -rw-r--r-- 1,284 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
From: Karel Zak <kzak@redhat.com>
Date: Tue, 1 Apr 2025 17:45:01 +0200
Subject: libmount: 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 ea694f8b91b82474c018dac2250b03cb00685b26)
---
 libmount/src/tab.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libmount/src/tab.c b/libmount/src/tab.c
index 8508715..a5070f8 100644
--- a/libmount/src/tab.c
+++ b/libmount/src/tab.c
@@ -2054,6 +2054,7 @@ int mnt_table_is_fs_mounted(struct libmnt_table *tb, struct libmnt_fs *fstab_fs)
 
 #ifdef TEST_PROGRAM
 #include "pathnames.h"
+#include "cctype.h"
 
 static int parser_errcb(struct libmnt_table *tb __attribute__((unused)),
 			const char *filename, int line)
@@ -2229,9 +2230,9 @@ static int test_find(struct libmnt_test *ts __attribute__((unused)),
 	mnt_table_set_cache(tb, mpc);
 	mnt_unref_cache(mpc);
 
-	if (strcasecmp(find, "source") == 0)
+	if (c_strcasecmp(find, "source") == 0)
 		fs = mnt_table_find_source(tb, what, dr);
-	else if (strcasecmp(find, "target") == 0)
+	else if (c_strcasecmp(find, "target") == 0)
 		fs = mnt_table_find_target(tb, what, dr);
 
 	if (!fs)