mirror of
https://github.com/git-for-windows/git.git
synced 2026-06-11 08:30:32 -05:00
http: fix memory leak in fetch_and_setup_pack_index()
Inside the function `fetch_and_setup_pack_index()`, when the pack obtained using `parse_pack_index()` fails to be verified by `verify_pack_index()`, the function returns without closing and freeing said pack. Fix this by calling `close_pack_index()` to munmap the index file for the leaking pack (which might have been mmapped by `fetch_pack_index()` or `verify_pack_index()`), and then free it, when the verification fails. Signed-off-by: LorenzoPegorari <lorenzo.pegorari2002@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
96ee7f1650
commit
18decad922
8
http.c
8
http.c
@@ -2614,11 +2614,13 @@ static int fetch_and_setup_pack_index(struct packfile_list *packs,
|
||||
}
|
||||
|
||||
ret = verify_pack_index(new_pack);
|
||||
if (!ret)
|
||||
close_pack_index(new_pack);
|
||||
|
||||
close_pack_index(new_pack);
|
||||
free(tmp_idx);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
free(new_pack);
|
||||
return -1;
|
||||
}
|
||||
|
||||
packfile_list_prepend(packs, new_pack);
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user