tar segfaults (busybox 1.8.1)

walter harms wharms at bfs.de
Sat Nov 17 10:16:54 UTC 2007



Ralf Friedl wrote:
> 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.
> 

there is already one:

- Function: int backtrace (void **BUFFER, int SIZE)
     The `backtrace' function obtains a backtrace for the current
     thread, as a list of pointers, and places the information into
     BUFFER.  The argument SIZE should be the number of `void *'
     elements that will fit into BUFFER.  The return value is the
     actual number of entries of BUFFER that are obtained, and is at
     most SIZE.


just for info,

re,
 wh






More information about the busybox mailing list