diff options
author | Stefan Liebler <stli@linux.ibm.com> | 2024-07-11 11:28:53 +0200 |
---|---|---|
committer | Stefan Liebler <stli@linux.ibm.com> | 2024-07-16 10:34:50 +0200 |
commit | 5f08d1df2c07904c1dc98bdf2b363c65874266f7 (patch) | |
tree | de1c65d740e7bb218e999cc8f43054ad01df5c83 /sysdeps/s390/fpu/fesetround.c | |
parent | d0916db23313266770c865091cc3d4ae69871e60 (diff) | |
download | glibc-release/2.33/master.tar.gz glibc-release/2.33/master.tar.xz glibc-release/2.33/master.zip |
s390x: Fix segfault in wcsncmp [BZ #31934] release/2.33/master
The z13/vector-optimized wcsncmp implementation segfaults if n=1 and there is only one character (equal on both strings) before the page end. Then it loads and compares one character and misses to check n again. The following load fails. This patch removes the extra load and compare of the first character and just start with the loop which uses vector-load-to-block-boundary. This code-path also checks n. With this patch both tests are passing: - the simplified one mentioned in the bugzilla 31934 - the full one in Florian Weimer's patch: "manual: Document a GNU extension for strncmp/wcsncmp" (https://patchwork.sourceware.org/project/glibc/patch/874j9eml6y.fsf@oldenburg.str.redhat.com/): On s390x-linux-gnu (z16), the new wcsncmp test fails due to bug 31934. Reviewed-by: Carlos O'Donell <carlos@redhat.com> (cherry picked from commit 9b7651410375ec8848a1944992d663d514db4ba7)
Diffstat (limited to 'sysdeps/s390/fpu/fesetround.c')
0 files changed, 0 insertions, 0 deletions