Commit 704554cdf07c2cdbefbf586c1ea4e8af35c720db

Patrick Steinhardt 2016-02-15T11:37:48

transports: smart: fix memory leak on OOM path

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
diff --git a/src/transports/smart_protocol.c b/src/transports/smart_protocol.c
index 1d46d4b..6363378 100644
--- a/src/transports/smart_protocol.c
+++ b/src/transports/smart_protocol.c
@@ -108,6 +108,7 @@ static int append_symref(const char **out, git_vector *symrefs, const char *ptr)
 		if (giterr_last()->klass != GITERR_NOMEMORY)
 			goto on_invalid;
 
+		git__free(mapping);
 		return error;
 	}
 
@@ -120,6 +121,7 @@ static int append_symref(const char **out, git_vector *symrefs, const char *ptr)
 on_invalid:
 	giterr_set(GITERR_NET, "remote sent invalid symref");
 	git_refspec__free(mapping);
+	git__free(mapping);
 	return -1;
 }