Re: [PATCH 07/26] http-backend: avoid memory leaks
From: Johannes Schindelin <hidden>
Date: 2017-04-28 09:41:38
Hi Junio, On Wed, 26 Apr 2017, Junio C Hamano wrote:
Johannes Schindelin [off-list ref] writes:quoted
Reported via Coverity. Signed-off-by: Johannes Schindelin <redacted> --- http-backend.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)diff --git a/http-backend.c b/http-backend.c index eef0a361f4f..d12572fda10 100644 --- a/http-backend.c +++ b/http-backend.c@@ -681,8 +681,10 @@ int cmd_main(int argc, const char **argv) if (!regexec(&re, dir, 1, out, 0)) { size_t n; - if (strcmp(method, c->method)) + if (strcmp(method, c->method)) { + free(dir); return bad_request(&hdr, c); + } cmd = c; n = out[0].rm_eo - out[0].rm_so;@@ -708,5 +710,7 @@ int cmd_main(int argc, const char **argv) max_request_buffer); cmd->imp(&hdr, cmd_arg); + free(dir); + free(cmd_arg); return 0; }Hmph. I find a "leak" of a resource acquired inside the main function and not released when the main function leaves a lot less interesting than the other ones this series covers.
Ah, I missed that this falls squarely into the "one-shot programs are allowed to be sloppy in their memory management, essentially using exit() as garbage collector" category. Will drop, Dscho