Skip to content

Commit 3907a40

Browse files
peffgitster
authored andcommitted
server-info: clean up after writing info/packs
We allocate pack information in a static global list but never clean it up. This leaks memory, and means that calling update_server_info twice will generate a buggy file (it will have duplicate entries). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent d38379e commit 3907a40

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

server-info.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,14 @@ static void init_pack_info(const char *infofile, int force)
233233
info[i]->new_num = i;
234234
}
235235

236+
static void free_pack_info(void)
237+
{
238+
int i;
239+
for (i = 0; i < num_pack; i++)
240+
free(info[i]);
241+
free(info);
242+
}
243+
236244
static int write_pack_info_file(FILE *fp)
237245
{
238246
int i;
@@ -252,6 +260,7 @@ static int update_info_packs(int force)
252260

253261
init_pack_info(infofile, force);
254262
ret = update_info_file(infofile, write_pack_info_file);
263+
free_pack_info();
255264
free(infofile);
256265
return ret;
257266
}

0 commit comments

Comments
 (0)