tar segfaults (busybox 1.8.1)
Ralf Friedl
Ralf.Friedl at online.de
Fri Nov 16 12:53:16 PST 2007
Denys Vlasenko wrote:
> It means that you built your glibc with some weird debugging mode,
> and it converts
>
> strcpy(array, string);
>
> into some sort of
>
> strcpy_with_overrun_check(array, sizeof(array), string);
>
> In this case, it blew up despite code was correct.
>
> It also makes all your strcpy's bigger.
>
> Which version of glibc does this? With which configure options
> did you built it?
>
glibc can't to this, it must be the compiler, maybe with some special
options.
This would also be consistent with the strace log, which shows that
libgcc_s is loaded to display the stack trace. If glibc would do it, the
functions for the backtrace would probably be included in glibc.
Regards
Ralf Friedl
29355 munmap(0xb7f29000, 4096) = 0
29355 open("/dev/tty", O_RDWR|O_NOCTTY|O_NONBLOCK) = 7
29355 writev(7, [{"*** buffer overflow detected ***"..., 34}, {"./busybox", 9}, {" terminated\n", 12}], 3) = 55
29355 open("/etc/ld.so.cache", O_RDONLY) = 8
29355 fstat64(8, {st_mode=S_IFREG|0644, st_size=125457, ...}) = 0
29355 mmap2(NULL, 125457, PROT_READ, MAP_PRIVATE, 8, 0) = 0xb7f0b000
29355 close(8) = 0
29355 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
29355 open("/lib/libgcc_s.so.1", O_RDONLY) = 8
More information about the busybox
mailing list