Fix off-by-one error in index check in xkb_file_type_to_string
authorAlan Coopersmith <alan.coopersmith@oracle.com>
Sun, 30 Sep 2018 23:04:29 +0000 (16:04 -0700)
committerAlan Coopersmith <alan.coopersmith@oracle.com>
Sun, 30 Sep 2018 23:04:29 +0000 (16:04 -0700)
Found by Oracle's Parfait 2.2 static analyzer:
Error: Buffer overrun
   Read outside array bounds [read-outside-array-bounds] (CWE 125):
      In array dereference of xkb_file_type_strings[type] with index type
      Array size is 56 bytes, index <= 56
        at line 734 of src/xkbcomp/ast-build.c in function 'xkb_file_type_to_string'.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
src/xkbcomp/ast-build.c

index 2de9e61..365ff51 100644 (file)
@@ -729,7 +729,7 @@ static const char *xkb_file_type_strings[_FILE_TYPE_NUM_ENTRIES] = {
 const char *
 xkb_file_type_to_string(enum xkb_file_type type)
 {
-    if (type > _FILE_TYPE_NUM_ENTRIES)
+    if (type >= _FILE_TYPE_NUM_ENTRIES)
         return "unknown";
     return xkb_file_type_strings[type];
 }