clean: release strbuf after use in remove_dirs()

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

Rene Scharfe committed Aug 30, 2017 at 19:49 UTC 25a8f80a8482d74225587fb2f667a8f296a58c48
1 file changed +5 -2
builtin/clean.c
+5 -2
@@ -167,7 +167,7 @@ static int remove_dirs(struct strbuf *path, const char *prefix, int force_flag,
167 }
168
169 *dir_gone = 0;
170 - return 0;
170 + goto out;
171 }
172
173 dir = opendir(path->buf);
@@ -181,7 +181,8 @@ static int remove_dirs(struct strbuf *path, const char *prefix, int force_flag,
181 warning_errno(_(msg_warn_remove_failed), quoted.buf);
182 *dir_gone = 0;
183 }
184 - return res;
184 + ret = res;
185 + goto out;
186 }
187
188 strbuf_complete(path, '/');
@@ -249,6 +250,8 @@ static int remove_dirs(struct strbuf *path, const char *prefix, int force_flag,
250 for (i = 0; i < dels.nr; i++)
251 printf(dry_run ? _(msg_would_remove) : _(msg_remove), dels.items[i].string);
252 }
253 +out:
254 + strbuf_release(&quoted);
255 string_list_clear(&dels, 0);
256 return ret;
257 }