xkbcomp: add null checkers after calloc()
authorjeon <jhyuni.kang@samsung.com>
Tue, 5 Nov 2019 09:52:25 +0000 (18:52 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Thu, 21 Dec 2023 23:43:48 +0000 (08:43 +0900)
Change-Id: Ie5f050d20a678260f00778de20aad830c5b3208b

src/xkbcomp/symbols.c

index 20eebeb..6d46884 100644 (file)
@@ -715,8 +715,13 @@ AddSymbolsToKey(SymbolsInfo *info, KeyInfo *keyi, ExprDef *arrayNdx,
 
         sym_index = darray_item(value->keysym_list.symsMapIndex, i);
         leveli->num_syms = darray_item(value->keysym_list.symsNumEntries, i);
-        if (leveli->num_syms > 1)
+        if (leveli->num_syms > 1) {
             leveli->u.syms = calloc(leveli->num_syms, sizeof(*leveli->u.syms));
+            if (!leveli->u.syms) {
+                log_err(info->ctx, "Failed to allocate memory for leveli->u.syms\n");
+                continue;
+            }
+        }
 
         for (unsigned j = 0; j < leveli->num_syms; j++) {
             xkb_keysym_t keysym = darray_item(value->keysym_list.syms,
@@ -1491,6 +1496,10 @@ CopySymbolsDefToKeymap(struct xkb_keymap *keymap, SymbolsInfo *info,
     }
 
     key->groups = calloc(key->num_groups, sizeof(*key->groups));
+    if (!key->groups) {
+        log_err(info->ctx, "Failed to allocate memory for key->groups\n");
+        return false;
+    }
 
     /* Find and assign the groups' types in the keymap. */
     darray_enumerate(i, groupi, keyi->groups) {