Very suspicious stack trace

Peter Steele psteele at
Fri Mar 26 04:54:30 UTC 2010

We had an app crash and the resulting core dump produced a very suspicious/confusing stack trace:

#0 0x00000008011d438c in thr_kill () from /lib/
#1 0x00000008012722bb in abort () from /lib/
#2 0x00000008011fb70c in malloc_usable_size () from /lib/
#3 0x00000008011fbb95 in malloc_usable_size () from /lib/
#4 0x00000008011fdaea in _malloc_thread_cleanup () from /lib/
#5 0x00000008011fdc86 in _malloc_thread_cleanup () from /lib/
#6 0x00000008011fc8e9 in malloc_usable_size () from /lib/
#7 0x00000008011fccc7 in malloc_usable_size () from /lib/
#8 0x00000008011ffe8f in malloc () from /lib/
#9 0x000000080127374b in memchr () from /lib/
#10 0x000000080125e6e9 in __srget () from /lib/
#11 0x00000008012352dd in vsscanf () from /lib/
#12 0x0000000801220087 in fscanf () from /lib/

This trace resulted from a call to fscanf, as follows:

char sensor[21];
fscanf(in, "%20s", sensor);

We've verified that the data being read was correct, and clearly the buffer in which fscanf is storing the string it reads is valid (i.e., it's not NULL). So what would lead malloc() into calling abort()? Everything seems to be in order.

More information about the freebsd-questions mailing list