From a83c91dd7ab8ebf3f1b89a56280bdf7aab0d882f Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Mon, 21 Oct 2024 18:25:09 +0900 Subject: [PATCH] Fix an off-by-one error of own memrchr implementation and make it support `search_len == 0`, just for the case Ref [Bug #20796] --- string.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/string.c b/string.c index b8213ea085..11a2ec1b71 100644 --- a/string.c +++ b/string.c @@ -4548,9 +4548,9 @@ static void* memrchr(const char *search_str, int chr, long search_len) { const char *ptr = search_str + search_len; - do { + while (ptr > search_str) { if ((unsigned char)*(--ptr) == chr) return (void *)ptr; - } while (ptr >= search_str); + } return ((void *)0); }