The case-insensitive flag (c) for string and search tests doesn't make
authornicm <nicm@openbsd.org>
Fri, 29 May 2015 14:52:10 +0000 (14:52 +0000)
committernicm <nicm@openbsd.org>
Fri, 29 May 2015 14:52:10 +0000 (14:52 +0000)
the entire match case sensitive, only lower case characters.

usr.bin/file/magic-test.c

index 128116d..7394c0f 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: magic-test.c,v 1.3 2015/04/25 16:35:47 brynet Exp $ */
+/* $OpenBSD: magic-test.c,v 1.4 2015/05/29 14:52:10 nicm Exp $ */
 
 /*
  * Copyright (c) 2015 Nicholas Marriott <nicm@openbsd.org>
@@ -38,7 +38,7 @@ magic_one_eq(char a, char b, int cflag)
 {
        if (a == b)
                return (1);
-       if (cflag && tolower((u_char)a) == tolower((u_char)b))
+       if (cflag && islower((u_char)b) && tolower((u_char)a) == (u_char)b)
                return (1);
        return (0);
 }