Alle 13:13, giovedì 2 dicembre 2004, Mads Martin Joergensen ha scritto:
> Hey alltogether,
>
> With this .netrc:
>
>  machine localhost
>  default login anonymous password joe@
>
> I get this:
>
>  $ wget ftp.kernel.org/pub/linux/kernel/v2.0/patch-2.0.1.gz
>  --13:03:13--  http://ftp.kernel.org/pub/linux/kernel/v2.0/patch-2.0.1.gz
>             => `patch-2.0.1.gz'
>  wget: xmalloc.c:186: xfree_real: Assertion `ptr != ((void *)0)' failed.
>
> I've gotten this backtrace:
>
>  (gdb) bt
>  #0  0xffffe410 in ?? ()
>  #1  0xbfffe94c in ?? ()
>  #2  0x00000006 in ?? ()
>  #3  0x00001cb4 in ?? ()
>  #4  0x40186d41 in raise () from /lib/tls/libc.so.6
>  #5  0x40188529 in abort () from /lib/tls/libc.so.6
>  #6  0x40180573 in __assert_fail () from /lib/tls/libc.so.6
>  #7  0x0806fa33 in xfree_real (ptr=0x0) at xmalloc.c:186
>  #8  0x080645fa in maybe_add_to_list (newentry=0xbfffeb2c, list=0xbfffeb28)
>      at netrc.c:219
>  #9  0x080649ce in parse_netrc (path=0xbfffeb60 "/suse/mmj/.netrc") at
> netrc.c:401 #10 0x0806448b in search_netrc (host=0x8085f08 "kernel.org",
> acc=0xbfffed0c, passwd=0xbfffed08, slack_default=1) at netrc.c:94
>  #11 0x0804f8f2 in getftp (u=0x8086508, len=0xbfffeef8, restval=0,
> con=0xbfffefb0) at ftp.c:264
>  #12 0x08051f58 in ftp_loop_internal (u=0x8086508, f=0x0, con=0xbfffefb0)
>      at ftp.c:1229
>  #13 0x080533d0 in ftp_loop (u=0x8086508, dt=0xbffff138, proxy=0x0) at
> ftp.c:1891 #14 0x08068e59 in retrieve_url (
>      origurl=0x8086488
> "ftp://kernel.org/pub/linux/kernel/v2.0/patch-2.0.1.gz";, file=0xbffff130,
> newloc=0xbffff134, refurl=0x0, dt=0xbffff138) at retr.c:658 #15 0x0806403d
> in main (argc=2, argv=0xbffff1f4) at main.c:915
>
> So since these pointers apparantly _can_ be NULL, how about the
> following patch:
>
> --- src/netrc.c
> +++ src/netrc.c
> @@ -215,9 +215,9 @@
>    if (a && ! a->acc)
>      {
>        /* Free any allocated space.  */
> -      xfree (a->host);
> -      xfree (a->acc);
> -      xfree (a->passwd);
> +      xfree_null (a->host);
> +      xfree_null (a->acc);
> +      xfree_null (a->passwd);
>      }
>    else
>      {

hi mads martin,

this bug is already fixed in the cvs sources. thank you very much for the 
report, anyway ;-)

-- 
Aequam memento rebus in arduis servare mentem...

Mauro Tortonesi

University of Ferrara - Dept. of Eng.    http://www.ing.unife.it
Institute of Human & Machine Cognition   http://www.ihmc.us
Deep Space 6 - IPv6 for Linux            http://www.deepspace6.net
Ferrara Linux User Group                 http://www.ferrara.linux.it

Reply via email to