Merge branch 'ab/remote-free-fix'
Use-after-free (with another forget-to-free) fix.
* ab/remote-free-fix:
remote.c: don't dereference NULL in freeing loop
remote.c: remove braces from one-statement "for"-loops
diff --git a/remote.c b/remote.c
index 5824b08..9b9bbfe 100644
--- a/remote.c
+++ b/remote.c
@@ -146,14 +146,12 @@
free((char *)remote->name);
free((char *)remote->foreign_vcs);
- for (i = 0; i < remote->url_nr; i++) {
+ for (i = 0; i < remote->url_nr; i++)
free((char *)remote->url[i]);
- }
- FREE_AND_NULL(remote->pushurl);
+ FREE_AND_NULL(remote->url);
- for (i = 0; i < remote->pushurl_nr; i++) {
+ for (i = 0; i < remote->pushurl_nr; i++)
free((char *)remote->pushurl[i]);
- }
FREE_AND_NULL(remote->pushurl);
free((char *)remote->receivepack);
free((char *)remote->uploadpack);
@@ -2771,9 +2769,8 @@
{
int i;
- for (i = 0; i < remote_state->remotes_nr; i++) {
+ for (i = 0; i < remote_state->remotes_nr; i++)
remote_clear(remote_state->remotes[i]);
- }
FREE_AND_NULL(remote_state->remotes);
remote_state->remotes_alloc = 0;
remote_state->remotes_nr = 0;