Skip to content

Commit fe66167

Browse files
committed
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
2 parents 70055ef + 323822c commit fe66167

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

remote.c

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -146,14 +146,12 @@ static void remote_clear(struct remote *remote)
146146
free((char *)remote->name);
147147
free((char *)remote->foreign_vcs);
148148

149-
for (i = 0; i < remote->url_nr; i++) {
149+
for (i = 0; i < remote->url_nr; i++)
150150
free((char *)remote->url[i]);
151-
}
152-
FREE_AND_NULL(remote->pushurl);
151+
FREE_AND_NULL(remote->url);
153152

154-
for (i = 0; i < remote->pushurl_nr; i++) {
153+
for (i = 0; i < remote->pushurl_nr; i++)
155154
free((char *)remote->pushurl[i]);
156-
}
157155
FREE_AND_NULL(remote->pushurl);
158156
free((char *)remote->receivepack);
159157
free((char *)remote->uploadpack);
@@ -2771,9 +2769,8 @@ void remote_state_clear(struct remote_state *remote_state)
27712769
{
27722770
int i;
27732771

2774-
for (i = 0; i < remote_state->remotes_nr; i++) {
2772+
for (i = 0; i < remote_state->remotes_nr; i++)
27752773
remote_clear(remote_state->remotes[i]);
2776-
}
27772774
FREE_AND_NULL(remote_state->remotes);
27782775
remote_state->remotes_alloc = 0;
27792776
remote_state->remotes_nr = 0;

0 commit comments

Comments
 (0)