Makefile: linux has /dev/tty
[gitweb.git] / transport-helper.c
index 74c3122df1835c45a6b621205fb18b4fc89af366..6f227e253bf638de37ce74347213657c23185afa 100644 (file)
@@ -183,7 +183,7 @@ static struct child_process *get_helper(struct transport *transport)
                        ALLOC_GROW(refspecs,
                                   refspec_nr + 1,
                                   refspec_alloc);
-                       refspecs[refspec_nr++] = strdup(capname + strlen("refspec "));
+                       refspecs[refspec_nr++] = xstrdup(capname + strlen("refspec "));
                } else if (!strcmp(capname, "connect")) {
                        data->connect = 1;
                } else if (!prefixcmp(capname, "export-marks ")) {
@@ -445,9 +445,11 @@ static int fetch_with_import(struct transport *transport,
                if (data->refspecs)
                        private = apply_refspecs(data->refspecs, data->refspec_nr, posn->name);
                else
-                       private = strdup(posn->name);
-               read_ref(private, posn->old_sha1);
-               free(private);
+                       private = xstrdup(posn->name);
+               if (private) {
+                       read_ref(private, posn->old_sha1);
+                       free(private);
+               }
        }
        strbuf_release(&buf);
        return 0;
@@ -746,6 +748,10 @@ static int push_refs_with_export(struct transport *transport,
                }
                free(private);
 
+               if (ref->deletion) {
+                       die("remote-helpers do not support ref deletion");
+               }
+
                if (ref->peer_ref)
                        string_list_append(&revlist_args, ref->peer_ref->name);