Commit 7288d8b65c5f584f14eff045ab2f70a97a666898

Carlos Martín Nieto 2011-05-31T15:11:49

Parse section header ext: don't leak on error Also free the subsection if we find too many quotes Signed-off-by: Carlos Martín Nieto <cmn@elego.de>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
diff --git a/src/config_file.c b/src/config_file.c
index 37e3f1f..4b7ce06 100644
--- a/src/config_file.c
+++ b/src/config_file.c
@@ -597,8 +597,10 @@ static int parse_section_header_ext(const char *line, const char *base_name, cha
 	do {
 		switch (c) {
 		case '"':
-			if (quote_marks++ >= 2)
-				return git__throw(GIT_EOBJCORRUPTED, "Failed to parse ext header. Too many quotes");
+			if (quote_marks++ >= 2) {
+				error = git__throw(GIT_EOBJCORRUPTED, "Failed to parse ext header. Too many quotes");
+				goto out;
+			}
 			break;
 		case '\\':
 			c = line[rpos++];