]> git.ipfire.org Git - thirdparty/git.git/commitdiff
daemon: plug memory leak on overlong path
authorRené Scharfe <l.s.r@web.de>
Sat, 18 Dec 2021 09:47:03 +0000 (10:47 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 20 Dec 2021 20:43:18 +0000 (12:43 -0800)
Release the strbuf containing the interpolated path after copying it to
a stack buffer and before erroring out if it's too long.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
daemon.c

index b1fcbe0d6fa847dd936467c0d8d1aeffbf90d1cc..99ae30fedb6d564802380a166c2e6c3c22e34b73 100644 (file)
--- a/daemon.c
+++ b/daemon.c
@@ -232,13 +232,13 @@ static const char *path_ok(const char *directory, struct hostinfo *hi)
 
                rlen = strlcpy(interp_path, expanded_path.buf,
                               sizeof(interp_path));
+               strbuf_release(&expanded_path);
                if (rlen >= sizeof(interp_path)) {
                        logerror("interpolated path too large: %s",
                                 interp_path);
                        return NULL;
                }
 
-               strbuf_release(&expanded_path);
                loginfo("Interpolated dir '%s'", interp_path);
 
                dir = interp_path;