summaryrefslogtreecommitdiff
path: root/unix-socket.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-02-06 14:56:45 -0800
committerJunio C Hamano <gitster@pobox.com>2025-02-06 14:56:45 -0800
commit5f338eae76ea739954517292b8b057d1b6187926 (patch)
tree4a88436f835b7e9ee9a187a517dec48519e12b14 /unix-socket.c
parent9d0e81e2ae3bd7f6d8a655be53c2396d7af3d2b0 (diff)
parent087740d65a5d28756ecbe56fc3b10328b52e8d33 (diff)
Merge branch 'ps/leakfixes-0129'
A few more leakfixes. * ps/leakfixes-0129: scalar: free result of `remote_default_branch()` unix-socket: fix memory leak when chdir(3p) fails
Diffstat (limited to 'unix-socket.c')
-rw-r--r--unix-socket.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/unix-socket.c b/unix-socket.c
index 483c9c448c..8860203c3f 100644
--- a/unix-socket.c
+++ b/unix-socket.c
@@ -65,8 +65,10 @@ static int unix_sockaddr_init(struct sockaddr_un *sa, const char *path,
if (strbuf_getcwd(&cwd))
return -1;
ctx->orig_dir = strbuf_detach(&cwd, NULL);
- if (chdir_len(dir, slash - dir) < 0)
+ if (chdir_len(dir, slash - dir) < 0) {
+ FREE_AND_NULL(ctx->orig_dir);
return -1;
+ }
}
memset(sa, 0, sizeof(*sa));