]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lib/signames: ignore locales when searching for signal names
authorKarel Zak <kzak@redhat.com>
Wed, 4 Jan 2023 17:37:26 +0000 (18:37 +0100)
committerKarel Zak <kzak@redhat.com>
Wed, 4 Jan 2023 17:37:26 +0000 (18:37 +0100)
Fix: https://github.com/util-linux/util-linux/issues/1991
Signed-off-by: Karel Zak <kzak@redhat.com>
lib/signames.c

index 064776a4488e067c0e8b8a0004500873a5c4ff09..d0d2bff770b3925b7258e71d03198d467e87f98f 100644 (file)
@@ -15,6 +15,7 @@
 #include <errno.h>
 
 #include "c.h"
+#include "cctype.h"
 #include "strutils.h"
 #include "signames.h"
 
@@ -107,9 +108,9 @@ static int rtsig_to_signum(const char *sig)
        int num, maxi = 0;
        char *ep = NULL;
 
-       if (strncasecmp(sig, "min+", 4) == 0)
+       if (c_strncasecmp(sig, "min+", 4) == 0)
                sig += 4;
-       else if (strncasecmp(sig, "max-", 4) == 0) {
+       else if (c_strncasecmp(sig, "max-", 4) == 0) {
                sig += 4;
                maxi = 1;
        }
@@ -130,16 +131,16 @@ int signame_to_signum(const char *sig)
 {
        size_t n;
 
-       if (!strncasecmp(sig, "sig", 3))
+       if (!c_strncasecmp(sig, "sig", 3))
                sig += 3;
 #ifdef SIGRTMIN
        /* RT signals */
-       if (!strncasecmp(sig, "rt", 2))
+       if (!c_strncasecmp(sig, "rt", 2))
                return rtsig_to_signum(sig + 2);
 #endif
        /* Normal signals */
        for (n = 0; n < ARRAY_SIZE(ul_signames); n++) {
-               if (!strcasecmp(ul_signames[n].name, sig))
+               if (!c_strcasecmp(ul_signames[n].name, sig))
                        return ul_signames[n].val;
        }
        return -1;