Re: git-http-fetch segfault, curl 7.18.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Mar 02, 2008 at 08:23:55PM +0100, Mike Hommey wrote:
> On Sun, Mar 02, 2008 at 07:08:57PM +0000, Gerrit Pape wrote:
> > Hi, as reported through http://bugs.debian.org/468836, I can reproduce
> > with current maint branch on Debian/unstable, but I don't know whether
> > it's a problem in curl, or in git.  Maybe anyone with some experience
> > in curl can help on this?
> > 
> > gdb gives this
> (...)
> 
> valgrind gives better insight:
> ==862== Invalid read of size 4
> ==862==    at 0x493B32: fill_active_slots (http.c:441)
> ==862==    by 0x493CF9: step_active_slots (http.c:459)
> ==862==    by 0x493D6E: run_active_slot (http.c:479)
> ==862==    by 0x493F8B: http_cleanup (http.c:296)
> ==862==    by 0x494CA8: cleanup (http-walker.c:900)
> ==862==    by 0x4911D6: walker_free (walker.c:315)
> ==862==    by 0x44A149: cmd_http_fetch (builtin-http-fetch.c:81)
> ==862==    by 0x404247: handle_internal_command (git.c:248)
> ==862==    by 0x4049D4: main (git.c:412)
> ==862==  Address 0x7c7c558 is 16 bytes inside a block of size 72 free'd
> ==862==    at 0x4C20B2E: free (vg_replace_malloc.c:323)
> ==862==    by 0x493F47: http_cleanup (http.c:301)
> ==862==    by 0x494CA8: cleanup (http-walker.c:900)
> ==862==    by 0x4911D6: walker_free (walker.c:315)
> ==862==    by 0x44A149: cmd_http_fetch (builtin-http-fetch.c:81)
> ==862==    by 0x404247: handle_internal_command (git.c:248)
> ==862==    by 0x4049D4: main (git.c:412)
(...)
> 
> It seems there is something wrong going on with slots...

And the problem lies in the fact we run_active_slot() during cleanup,
which can end up going through all the slots starting at
active_queue_head, while we have freed the first slots...

Now, why do we need to run slots when cleaning up ?

Mike
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux