]> granicus.if.org Git - onig/commitdiff
regparse: check malloc return value
authorRuslan Kuprieiev <kupruser@gmail.com>
Thu, 15 Jun 2017 19:29:49 +0000 (22:29 +0300)
committerRuslan Kuprieiev <kupruser@gmail.com>
Sat, 24 Jun 2017 01:53:37 +0000 (04:53 +0300)
Unchecked return value of xmalloc may result in
'Undefined behaviour' when its result is passed to xmemcpy.

Id: 19

Signed-off-by: Ruslan Kuprieiev <kupruser@gmail.com>
src/regparse.c

index 8153513202b3c32446add0bb30d0dc9629be85bf..c29c5fb20e83629fbf28f9175480d35d2a530325 100644 (file)
@@ -1010,14 +1010,15 @@ scan_env_add_mem_entry(ScanEnv* env)
       if (IS_NULL(env->mem_nodes_dynamic)) {
         alloc = INIT_SCANENV_MEMNODES_ALLOC_SIZE;
         p = (Node** )xmalloc(sizeof(Node*) * alloc);
+        CHECK_NULL_RETURN_MEMERR(p);
         xmemcpy(p, env->mem_nodes_static,
                 sizeof(Node*) * SCANENV_MEMNODES_SIZE);
       }
       else {
         alloc = env->mem_alloc * 2;
         p = (Node** )xrealloc(env->mem_nodes_dynamic, sizeof(Node*) * alloc);
+        CHECK_NULL_RETURN_MEMERR(p);
       }
-      CHECK_NULL_RETURN_MEMERR(p);
 
       for (i = env->num_mem + 1; i < alloc; i++)
         p[i] = NULL_NODE;