#include "parse-options.h"
 
 static const char * const push_usage[] = {
-       "git push [<options>] [<repository> <refspec>...]",
+       "git push [<options>] [<repository> [<refspec>...]]",
        NULL,
 };
 
                } else if (deleterefs && !strchr(ref, ':')) {
                        char *delref;
                        int len = strlen(ref)+1;
-                       delref = xmalloc(len);
+                       delref = xmalloc(len+1);
                        strcpy(delref, ":");
                        strcat(delref, ref);
                        ref = delref;
        struct branch *branch = branch_get(NULL);
        if (!branch)
                die("You are not currently on a branch.");
-       if (!branch->merge_nr)
+       if (!branch->merge_nr || !branch->merge)
                die("The current branch %s is not tracking anything.",
                    branch->name);
        if (branch->merge_nr != 1)