Browse Source

remote-curl: accept empty line as terminator

This went unnoticed because the transport helper infrastructore did
not check the return value of the helper, nor did the helper print
anything before exiting.

While at it also make sure that the stream doesn't end unexpectedly.

Signed-off-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Sverre Rabbelier 14 years ago committed by Junio C Hamano
parent
commit
1843f0ce4d
  1. 10
      remote-curl.c

10
remote-curl.c

@ -855,7 +855,14 @@ int main(int argc, const char **argv) @@ -855,7 +855,14 @@ int main(int argc, const char **argv)
http_init(remote);

do {
if (strbuf_getline(&buf, stdin, '\n') == EOF)
if (strbuf_getline(&buf, stdin, '\n') == EOF) {
if (ferror(stdin))
fprintf(stderr, "Error reading command stream\n");
else
fprintf(stderr, "Unexpected end of command stream\n");
return 1;
}
if (buf.len == 0)
break;
if (!prefixcmp(buf.buf, "fetch ")) {
if (nongit)
@ -895,6 +902,7 @@ int main(int argc, const char **argv) @@ -895,6 +902,7 @@ int main(int argc, const char **argv)
printf("\n");
fflush(stdout);
} else {
fprintf(stderr, "Unknown command '%s'\n", buf.buf);
return 1;
}
strbuf_reset(&buf);

Loading…
Cancel
Save