From ac0f5a522b6c9dffad0085be60cde067997939b9 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sun, 17 Oct 2021 12:47:37 +0200 Subject: [PATCH] 4.4-stable patches added patches: s390-fix-strrchr-implementation.patch --- .../s390-fix-strrchr-implementation.patch | 49 +++++++++++++++++++ queue-4.4/series | 1 + 2 files changed, 50 insertions(+) create mode 100644 queue-4.4/s390-fix-strrchr-implementation.patch diff --git a/queue-4.4/s390-fix-strrchr-implementation.patch b/queue-4.4/s390-fix-strrchr-implementation.patch new file mode 100644 index 00000000000..2cc2f36c585 --- /dev/null +++ b/queue-4.4/s390-fix-strrchr-implementation.patch @@ -0,0 +1,49 @@ +From 8e0ab8e26b72a80e991c66a8abc16e6c856abe3d Mon Sep 17 00:00:00 2001 +From: Roberto Sassu +Date: Tue, 5 Oct 2021 14:08:36 +0200 +Subject: s390: fix strrchr() implementation + +From: Roberto Sassu + +commit 8e0ab8e26b72a80e991c66a8abc16e6c856abe3d upstream. + +Fix two problems found in the strrchr() implementation for s390 +architectures: evaluate empty strings (return the string address instead of +NULL, if '\0' is passed as second argument); evaluate the first character +of non-empty strings (the current implementation stops at the second). + +Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") +Cc: stable@vger.kernel.org +Reported-by: Heiko Carstens (incorrect behavior with empty strings) +Signed-off-by: Roberto Sassu +Link: https://lore.kernel.org/r/20211005120836.60630-1-roberto.sassu@huawei.com +Signed-off-by: Heiko Carstens +Signed-off-by: Vasily Gorbik +Signed-off-by: Greg Kroah-Hartman +--- + arch/s390/lib/string.c | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +--- a/arch/s390/lib/string.c ++++ b/arch/s390/lib/string.c +@@ -225,14 +225,13 @@ EXPORT_SYMBOL(strcmp); + */ + char * strrchr(const char * s, int c) + { +- size_t len = __strend(s) - s; ++ ssize_t len = __strend(s) - s; + +- if (len) +- do { +- if (s[len] == (char) c) +- return (char *) s + len; +- } while (--len > 0); +- return NULL; ++ do { ++ if (s[len] == (char)c) ++ return (char *)s + len; ++ } while (--len >= 0); ++ return NULL; + } + EXPORT_SYMBOL(strrchr); + diff --git a/queue-4.4/series b/queue-4.4/series index 8e5147a4f01..9fa5ebe36dc 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -1 +1,2 @@ alsa-seq-fix-a-potential-uaf-by-wrong-private_free-call-order.patch +s390-fix-strrchr-implementation.patch -- 2.47.3