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>
Jeff King committed
Sep 13, 2014 at 16:19 UTC
3907a4078a89cffde2e2e0e61a3bd41efba96c49
1 file changed
+9
server-info.c
+9
@@ -233,6 +233,14 @@ static void init_pack_info(const char *infofile, int force)
233
info[i]->new_num = i;
234
}
235
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
+
244
static int write_pack_info_file(FILE *fp)
245
{
246
int i;
@@ -252,6 +260,7 @@ static int update_info_packs(int force)
260
261
init_pack_info(infofile, force);
262
ret = update_info_file(infofile, write_pack_info_file);
263
+ free_pack_info();
264
free(infofile);
265
return ret;
266
}