remote: fix use-after-free error detected by glibc in ref_remove_duplicates
authorJulian Phillips <julian@quantumfyre.co.uk>
Fri, 13 Nov 2009 21:25:56 +0000 (21:25 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sun, 15 Nov 2009 00:03:06 +0000 (16:03 -0800)
commit95c96d48e65a597cfd2bf7228ddc8c7ca30b55b7
tree22eda8e78a72863e9458d8c798e0b373f02d0daa
parentb1a01e1c0762d117da7dac009b773f310479be12
remote: fix use-after-free error detected by glibc in ref_remove_duplicates

In ref_remove_duplicates, when we encounter a duplicate and remove it
from the list we need to make sure that the prev pointer stays
pointing at the last entry and also skip over adding the just freed
entry to the string_list.

Previously fetch could crash with:
*** glibc detected *** git: corrupted double-linked list: ...

Also add a test to try and catch problems with duplicate removal in
the future.

Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
remote.c
t/t5510-fetch.sh