Date: Mon, 4 Jun 2001 04:31:59 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: sobomax@FreeBSD.ORG Cc: current@FreeBSD.ORG, deischen@FreeBSD.ORG Subject: Re: sscanf(3) is broken in 5-CURRENT [SIGBUS] Message-ID: <Pine.BSF.4.21.0106040426420.51343-100000@besplex.bde.org> In-Reply-To: <200106021026.f52AQQo50360@mail.uic-in.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 2 Jun 2001, Maxim Sobolev wrote:
> It seems that something is wrong with sscanf(3) in -current - in
> some cases it may cause SIGBUS. I failed to reproduce the
> problem on 4-STABLE, so it is a -current specific bug. Attached
> please find small showcase that exposes the bug in question
> and a backtrace after SIGBUS.
>
> Please fix.
>
> -Maxim
>
> #include <stdio.h>
> int
> main()
> {
> float sub;
> sscanf("59e", "%f", &sub);
> exit(0);
> }
>
> (gdb) r
> Starting program: /tmp/bug/a.out
> Program received signal SIGBUS, Bus error.
> 0x280b3ad8 in __ungetc () from /usr/lib/libc.so.5
> (gdb) bt
> #0 0x280b3ad8 in __ungetc () from /usr/lib/libc.so.5
> #1 0x280b36b1 in __svfscanf () from /usr/lib/libc.so.5
> #2 0x280b25a3 in sscanf () from /usr/lib/libc.so.5
> #3 0x80484c0 in main () at bug.c:8
> #4 0x80483f5 in _start ()
This is because fp->_extra is not initialized by sscanf() (it is stack
garbage that happened to be 0 when I looked at it).
Bruce
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0106040426420.51343-100000>
