From 36c1a9a39d429c333861f1752d16e9a0066e3cbe Mon Sep 17 00:00:00 2001 From: Sascha Schumann Date: Mon, 8 May 2000 10:05:19 +0000 Subject: Make strcasecmp() act correctly WRT SUS II. Patch by: hholzgra@php.net PR: #3556 --- Zend/zend_operators.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'Zend') diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 991385932b..73577e6181 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -1299,21 +1299,19 @@ ZEND_API int zend_binary_strncmp(char *s1, uint len1, char *s2, uint len2, uint ZEND_API int zend_binary_strcasecmp(char *s1, uint len1, char *s2, uint len2) { - unsigned char c1 = 0, c2 = 0; + int len; - if (len1 != len2 || !len1) { - return len1 - len2; - } + len = MIN(len1, len2); - while (len1--) { + while (len--) { c1 = tolower(*s1++); c2 = tolower(*s2++); if (c1 != c2) { - break; + return c1 - c2; } } - return c1 - c2; + return len1 - len2; } -- cgit v1.2.1