]> granicus.if.org Git - nethack/commitdiff
Fix segfault if lev_comp could not alloc memory for opcode
authorPasi Kallinen <paxed@alt.org>
Fri, 20 Nov 2015 10:27:46 +0000 (12:27 +0200)
committerPasi Kallinen <paxed@alt.org>
Fri, 20 Nov 2015 10:27:46 +0000 (12:27 +0200)
util/lev_main.c

index f17d9c416df76789628e18d4bfc0d9ee7a706b87..aefe18ae4b7af26acb3441925493d1a669162ebe 100644 (file)
@@ -1294,11 +1294,13 @@ genericptr_t dat;
         lc_error("Unknown opcode '%d'", opc);
 
     tmp = (_opcode *) alloc(sizeof(_opcode) * (nop + 1));
-    if (sp->opcodes && nop) {
+    if (sp->opcodes && nop && tmp) {
         (void) memcpy(tmp, sp->opcodes, sizeof(_opcode) * nop);
         free(sp->opcodes);
-    } else if (!tmp)
+    } else if (!tmp) {
         lc_error("Could not alloc opcode space");
+        return;
+    }
 
     sp->opcodes = tmp;