ref: 60c3628b5eeffe4c812c1a29d4286e7cf2ef41e8
parent: cfde707b706eb92af05ec5f4395a0c109a0b6cd2
author: Ori Bernstein <ori@eigenstate.org>
date: Mon Mar 30 23:21:41 EDT 2026
git/serve: we were sending a junk head if we couldn't read it instead, just send an error back to the client
--- a/sys/src/cmd/git/serve.c
+++ b/sys/src/cmd/git/serve.c
@@ -45,7 +45,7 @@
showrefs(Conn *c)
{char **names, *s, buf[256];
- int i, r, ret, nrefs;
+ int i, ret, nrefs;
Hash head, *refs;
ret = -1;
@@ -53,14 +53,10 @@
refs = nil;
names = nil;
- s = gethead(&head, buf, sizeof(buf));
- if(s != nil)
- r = fmtpkt(c, "%H HEAD%csymref=HEAD:%s no-thin\n", head, 0, s);
- else
- r = fmtpkt(c, "%H HEAD%cno-thin\n", head, 0);
- if(r == -1)
+ if((s = gethead(&head, buf, sizeof(buf))) == nil)
goto error;
-
+ if(fmtpkt(c, "%H HEAD%csymref=HEAD:%s no-thin\n", head, 0, s) == -1)
+ goto error;
if((nrefs = listrefs(&refs, &names)) == -1)
fail(c, "listrefs: %r");
for(i = 0; i < nrefs; i++){--
⑨