This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: my strstr is broken



On 11/09/2018 15:46, Wilco Dijkstra wrote:
> Siddhesh wrote:
> 
>> Is this a non-x86 architecture?  I can reproduce this on the glibc
>> 2.28 tag when I hack the ifunc resolver to ignore
>> __strstr_sse2_unaligned and always use the stock __strstr.
> 
> It's the generic strstr indeed. The issue is due to the long needle code using
> the same AVAILABLE macro as for short needles. Since the macro now 
> ensures the haystack contains up to 512 valid characters, it cannot handle
> needles which are longer than this. The fix is easy, just add the needle length.
> I'll post a patch.

Does it affect memmem as well? It would be useful to check it the tests
are inadequate and fix them if the case for memmem.

> 
>> It looks like the test case is fixed on trunk, with[1], but I'll take
>> a closer look at it later to confirm.
> 
> No it still exists on trunk, but you need avoid tests with a trivial first match
> which is now handled early as a special case. Also to make it fail consistently
> the needle needs to be longer than 1024 characters. Unfortunately neither the
> tests or benchmarks ever call two_way_long_needle...
> 
> Wilco
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]