Don't run post-update hook unless a ref changed
[gitweb.git] / receive-pack.c
index d39aebac1e33be7b15b5662e464d93f00243cdc0..e32e301d47d357925ac214191058ab9656e0bc5c 100644 (file)
@@ -175,14 +175,14 @@ static void run_update_post_hook(struct command *cmd)
        int argc;
        const char **argv;
 
-       if (access(update_post_hook, X_OK) < 0)
-               return;
-       for (argc = 1, cmd_p = cmd; cmd_p; cmd_p = cmd_p->next) {
+       for (argc = 0, cmd_p = cmd; cmd_p; cmd_p = cmd_p->next) {
                if (cmd_p->error_string)
                        continue;
                argc++;
        }
-       argv = xmalloc(sizeof(*argv) * (1 + argc));
+       if (!argc || access(update_post_hook, X_OK) < 0)
+               return;
+       argv = xmalloc(sizeof(*argv) * (2 + argc));
        argv[0] = update_post_hook;
 
        for (argc = 1, cmd_p = cmd; cmd_p; cmd_p = cmd_p->next) {