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.
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." /sourceware. org/bugzilla/ show_bug. cgi?id= 25226)
(https:/
Fixed with upstream-glibc commit "S390: Fix handling of needles crossing a page in strstr z15 ifunc-variant. [BZ #25226]" /sourceware. org/git/ ?p=glibc. git;a=commit; h=bfdb731438206 b0f70fe7afa8906 81155c30b419)
(https:/
Please backport this commit to Ubuntu 19.10, which includes glibc 2.30
Already backported to upstream- glibc-release- branch- 2.30: /sourceware. org/git/ ?p=glibc. git;a=commit; h=f4419b0d0181d a28f18cba40068f 2e75300f5020
https:/
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