Comment 0 for bug 1854326

Revision history for this message
bugproxy (bugproxy) wrote :

glibc: strstr(): Invalid result if needle crosses page on s390-z15 ifunc variant.
If the specified needle crosses a page-boundary, the s390-z15 ifunc variant of
strstr truncates the needle which results in invalid results.

Example:
needle = "Hello" <page-boundary> "World"
really used needle = "Hello"
haystack = "abc HelloBug def"
result = "HelloBug def"

This only happens if the needle before page-boundary contains 9 or less characters.

See upstream-glibc bugzilla "Bug 25226 - strstr: Invalid result if needle crosses page on s390-z15 ifunc variant."
(https://sourceware.org/bugzilla/show_bug.cgi?id=25226)

Fixed with upstream-glibc commit "S390: Fix handling of needles crossing a page in strstr z15 ifunc-variant. [BZ #25226]"
(https://sourceware.org/git/?p=glibc.git;a=commit;h=bfdb731438206b0f70fe7afa890681155c30b419)

Please backport this commit to Ubuntu 19.10, which includes glibc 2.30

Already backported to upstream-glibc-release-branch-2.30:
https://sourceware.org/git/?p=glibc.git;a=commit;h=f4419b0d0181da28f18cba40068f2e75300f5020

glibc 2.31 (tentativ GA 2020-02-01) will have this fix integrated.
If this version will not be picked finally, than this fix is also needed for 20.04