Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Apr 2004 09:16:18 +0200
From:      Kirill Ponomarew <krion@FreeBSD.org>
To:        Kaarthik Sivakumar <kaarthik@comcast.net>
Cc:        ports@freebsd.org
Subject:   Re: devel/libidn: warning when freeing memory
Message-ID:  <20040419071618.GA62425@voodoo.oberon.net>
In-Reply-To: <86u0zgipdr.fsf@comcast.net>
References:  <86u0zgipdr.fsf@comcast.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--sdtB3X0nJg68CQEu
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi,

On Mon, Apr 19, 2004 at 12:05:20AM -0400, Kaarthik Sivakumar wrote:
> When idn is run, it prints the following message for any string given
> to it:
>=20
>   idn in free(): error: junk pointer, too high to make sense
>=20
> After setting MALLOC_OPTIONS to A and compiling libidn with '-g', I
> got the following backtrace:
>=20
> ,----
> | (gdb) run
> | Starting program: /usr/home/programs/libidn-0.4.2/src/.libs/idn
> | libidn 0.4.2
> | Copyright 2002, 2003, 2004 Simon Josefsson.
> | GNU Libidn comes with NO WARRANTY, to the extent permitted by law.
> | You may redistribute copies of GNU Libidn under the terms of
> | the GNU Lesser General Public License.  For more information
> | about these matters, see the file named COPYING.LIB.
> | Type each input string on a line by itself, terminated by a newline cha=
racter.
> | test this string
> | idn in free(): error: junk pointer, too high to make sense
> |=20
> | Program received signal SIGABRT, Aborted.
> | 0x281f1d4f in kill () from /lib/libc.so.5
> | (gdb) bt
> | #0  0x281f1d4f in kill () from /lib/libc.so.5
> | #1  0x281e67f8 in raise () from /lib/libc.so.5
> | #2  0x2825ef02 in abort () from /lib/libc.so.5
> | #3  0x2825d67e in tcflow () from /lib/libc.so.5
> | #4  0x2825d6ab in tcflow () from /lib/libc.so.5
> | #5  0x2825e1d8 in tcflow () from /lib/libc.so.5
> | #6  0x2825e420 in free () from /lib/libc.so.5
> | #7  0x08049c1f in main (argc=3D1, argv=3D0xbfbfe9f0) at idn.c:381
> | #8  0x08048c62 in _start ()
> | (gdb) fr 7
> | #7  0x08049c1f in main (argc=3D1, argv=3D0xbfbfe9f0) at idn.c:381
> | 381                   free (r);
> | (gdb) l
> | 376                                argv[0], rc);
> | 377                       free (q);
> | 378                       return 1;
> | 379                     }
> | 380
> | 381                   free (r);
> | 382                 }
> | 383     #endif
> | 384
> | 385               if (args_info.debug_given)
> | (gdb) p r
> | $1 =3D 0x6f732e <Error reading address 0x6f732e: Bad address>
> | (gdb)=20
> `----
>=20
> I tried debugging but I couldnt figure out what was wrong. The address
> seems low for stack addresses, but it is obviously high for a heap
> address.

Could you please try to run it without free(3) ?

-Kirill

--sdtB3X0nJg68CQEu
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (FreeBSD)

iD8DBQFAg3zCQC1G6a60JuURAkAkAJ9tBq0b3atdSgyPu74mETUgEfy7sACg9Nuz
PCj+ysvMBTkJkHfIUmi9onY=
=v3L1
-----END PGP SIGNATURE-----

--sdtB3X0nJg68CQEu--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040419071618.GA62425>