]> asedeno.scripts.mit.edu Git - git.git/blobdiff - git.c
Merge branch 'maint'
[git.git] / git.c
diff --git a/git.c b/git.c
index 2f5b4d72ee249821f88617a4d5a8bbf3a0204340..89feb0b6dc9c34902aa7c3c4ac526c646c0e0d84 100644 (file)
--- a/git.c
+++ b/git.c
@@ -162,6 +162,8 @@ static int handle_alias(int *argcp, const char ***argv)
                            alias_string + 1, alias_command);
                }
                count = split_cmdline(alias_string, &new_argv);
+               if (count < 0)
+                       die("Bad alias.%s string", alias_command);
                option_count = handle_options(&new_argv, &count, &envchanged);
                if (envchanged)
                        die("alias '%s' changes environment variables\n"
@@ -365,7 +367,7 @@ static void handle_internal_command(int argc, const char **argv)
        if (sizeof(ext) > 1) {
                i = strlen(argv[0]) - strlen(ext);
                if (i > 0 && !strcmp(argv[0] + i, ext)) {
-                       char *argv0 = strdup(argv[0]);
+                       char *argv0 = xstrdup(argv[0]);
                        argv[0] = cmd = argv0;
                        argv0[i] = '\0';
                }
@@ -387,10 +389,9 @@ static void handle_internal_command(int argc, const char **argv)
 
 static void execv_dashed_external(const char **argv)
 {
-       struct strbuf cmd;
+       struct strbuf cmd = STRBUF_INIT;
        const char *tmp;
 
-       strbuf_init(&cmd, 0);
        strbuf_addf(&cmd, "git-%s", argv[0]);
 
        /*