git: 9front

Download patch

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++){
--