1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
From fa18fa7967333ccde36f9347722a66f44b746f25 Mon Sep 17 00:00:00 2001
From: KJ Tsanaktsidis <kjtsanaktsidis@groq.com>
Date: Thu, 8 Jan 2026 02:52:48 -0800
Subject: [PATCH] http-backend: write newlines to stderr when responding with
errors
The not_found and forbidden methods currently do not write a newline to
stderr after the error message. This means that if git-http-backend is
invoked through something like fcgiwrap, and the stderr of that fcgiwrap
process is sent to a logging daemon (e.g. journald), the error messages
of several git-http-backend invocations will just get strung together,
e.g.
> Not a git repository: '/var/lib/git/foo.git'Not a git repository: '/var/lib/git/foo.git'Not a git repository: '/var/lib/git/foo.git'
I think it's git-http-backend's responsibility to format these messages
properly, rather than it being fcgiwrap's job to notice that the script
didn't terminate stderr with a newline and do so itself.
Signed-off-by: KJ Tsanaktsidis <kj@kjtsanaktsidis.id.au>
---
http-backend.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/http-backend.c b/http-backend.c
index 52f0483dd3..bda8bb91e1 100644
--- a/http-backend.c
+++ b/http-backend.c
@@ -143,8 +143,10 @@ static NORETURN void not_found(struct strbuf *hdr, const char *err, ...)
end_headers(hdr);
va_start(params, err);
- if (err && *err)
+ if (err && *err) {
vfprintf(stderr, err, params);
+ fprintf(stderr, "\n");
+ }
va_end(params);
exit(0);
}
@@ -159,8 +161,10 @@ static NORETURN void forbidden(struct strbuf *hdr, const char *err, ...)
end_headers(hdr);
va_start(params, err);
- if (err && *err)
+ if (err && *err) {
vfprintf(stderr, err, params);
+ fprintf(stderr, "\n");
+ }
va_end(params);
exit(0);
}
--
2.50.1
|