comet2monitorの修正
authorj8takagi <j8takagi@nifty.com>
Mon, 11 Feb 2019 14:29:48 +0000 (23:29 +0900)
committerj8takagi <j8takagi@nifty.com>
Mon, 11 Feb 2019 14:29:48 +0000 (23:29 +0900)
src/monitor.c
src/word.c

index 831a47a..a921e8d 100644 (file)
@@ -349,19 +349,20 @@ void monitor()
         buf = malloc_chk(MONINSIZE + 1, "monitor.buf");
         fgets(buf, MONINSIZE, stdin);
         if((p = strchr(buf, '\n')) != NULL) {
-            strcpy(p, "");
+            p = '\0';
         }
         if((moncmdl = monlinetok(buf)) != NULL) {
             cmdtype = monitorcmd(moncmdl->cmd, moncmdl->args);
             free_moncmdline(moncmdl);
         }
-        FREE(buf);
-        if(cmdtype == MONQUIT) {
+        if(!buf[0] || cmdtype == MONQUIT) {
+            FREE(buf);
             shutdown();
             freebps();
             free_cmdtable(HASH_CODE);
             freecerr();
             exit(0);
         }
+        FREE(buf);
     } while(cmdtype == MONREPEAT);
 }
index d26438f..74a2786 100644 (file)
@@ -84,6 +84,9 @@ WORD nh2word(const char *str)
     WORD w;
 
     assert(sizeof(WORD) * 8 == 16); /* WORD型のサイズが16ビットであることを確認 */
+    if(str == NULL) {
+        return 0x0;
+    }
     if(!isdigit(*str) && *str != '-' && *str != '#') {
         setcerr(114, str);    /* not integer */
         return 0x0;