devel/libidn: warning when freeing memory
Kaarthik Sivakumar
kaarthik at comcast.net
Sun Apr 18 21:02:10 PDT 2004
When idn is run, it prints the following message for any string given
to it:
idn in free(): error: junk pointer, too high to make sense
After setting MALLOC_OPTIONS to A and compiling libidn with '-g', I
got the following backtrace:
,----
| (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 character.
| test this string
| idn in free(): error: junk pointer, too high to make sense
|
| 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=1, argv=0xbfbfe9f0) at idn.c:381
| #8 0x08048c62 in _start ()
| (gdb) fr 7
| #7 0x08049c1f in main (argc=1, argv=0xbfbfe9f0) 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 = 0x6f732e <Error reading address 0x6f732e: Bad address>
| (gdb)
`----
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.
Thanks
kaarthik
More information about the freebsd-ports
mailing list