Skip to content

Commit 93d9c8b

Browse files
committed
Merge branch 'jc/remote-insteadof-leakfix' into seen
ewrites_release() in remote.c has been updated to free struct rewrite instances and their instead_of arrays, and handle_config() now borrows string values directly from repo_config(). * jc/remote-insteadof-leakfix: remote: plug memory leaks
2 parents bb58286 + 19a305b commit 93d9c8b

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

remote.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -309,8 +309,11 @@ static struct rewrite *make_rewrite(struct rewrites *r,
309309

310310
static void rewrites_release(struct rewrites *r)
311311
{
312-
for (int i = 0; i < r->rewrite_nr; i++)
312+
for (int i = 0; i < r->rewrite_nr; i++) {
313313
free((char *)r->rewrite[i]->base);
314+
free(r->rewrite[i]->instead_of);
315+
free(r->rewrite[i]);
316+
}
314317
free(r->rewrite);
315318
memset(r, 0, sizeof(*r));
316319
}
@@ -469,13 +472,13 @@ static int handle_config(const char *key, const char *value,
469472
return config_error_nonbool(key);
470473
rewrite = make_rewrite(&remote_state->rewrites, name,
471474
namelen);
472-
add_instead_of(rewrite, xstrdup(value));
475+
add_instead_of(rewrite, value);
473476
} else if (!strcmp(subkey, "pushinsteadof")) {
474477
if (!value)
475478
return config_error_nonbool(key);
476479
rewrite = make_rewrite(&remote_state->rewrites_push,
477480
name, namelen);
478-
add_instead_of(rewrite, xstrdup(value));
481+
add_instead_of(rewrite, value);
479482
}
480483
}
481484

0 commit comments

Comments
 (0)