]> diplodocus.org Git - nmh/blobdiff - sbr/ext_hook.c
Fix invalid pointer arithmetic.
[nmh] / sbr / ext_hook.c
index 3cde1fd960bd6222ee739a410bf10c63e465b6ba..ac88ac7bea59669251c6e086178a23e0fe395f28 100644 (file)
@@ -38,7 +38,7 @@ ext_hook(char *hook_name, char *message_file_name_1, char *message_file_name_2)
        vec[vecp++] = NULL;
        execvp(program, vec);
        advise(program, "Unable to execute");
-       _exit(-1);
+       _exit(1);
        /* NOTREACHED */
 
     default:
@@ -46,20 +46,20 @@ ext_hook(char *hook_name, char *message_file_name_1, char *message_file_name_2)
        break;
     }
 
-    if (status != OK) {
-       if (did_message == 0) {
-           char *msghook;
-           if ((msghook = context_find("msg-hook")) != NULL)
-                inform("%s", msghook);
-           else {
-               char errbuf[BUFSIZ];
-               snprintf(errbuf, sizeof(errbuf), "external hook \"%s\"", hook);
-               pidstatus(status, stderr, errbuf);
-           }
-           did_message = 1;
-       }
-
-       return NOTOK;
-    } else
+    if (status == OK)
        return OK;
+
+    if (did_message == 0) {
+        char *msghook;
+        if ((msghook = context_find("msg-hook")) != NULL)
+            inform("%s", msghook);
+        else {
+            char errbuf[BUFSIZ];
+            snprintf(errbuf, sizeof(errbuf), "external hook \"%s\"", hook);
+            pidstatus(status, stderr, errbuf);
+        }
+        did_message = 1;
+    }
+
+    return NOTOK;
 }