|
Message-ID: <20140619010642.GI179@brightrain.aerifal.cx> Date: Wed, 18 Jun 2014 21:06:42 -0400 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: uninitialized memory access in memmem() On Wed, Jun 18, 2014 at 06:20:33PM +0000, Clément Vasseur wrote: > Hello, > > I found a case where memmem() returns 0 where it should not: > > $ cat test-memmem.c > #define _GNU_SOURCE > #include <string.h> > #include <assert.h> > > #define DATA 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10 > > int main(void) > { > const unsigned char haystack[] = { DATA }; > const unsigned char needle[] = { DATA }; > assert(memmem(haystack, sizeof haystack, needle, sizeof needle)); > } > > $ musl-gcc test-memmem.c && ./a.out > Assertion failed: memmem(haystack, sizeof haystack, needle, sizeof needle) (test-memmem.c: main: 11) > Aborted > > Valgrind says a conditional jump or move depends on uninitalized value > in twoway_memmem(). The code is quite complicated so I have not tried to > track it down any further. Can you provide more details? musl version? gcc version? arch? I can't reproduce this error in master with gcc 4.7.3/i386. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.