PHP 4.0 Bug #8195 Updated: strncasecmp returns incorrect value

From: Date: Tue, 12 Dec 2000 09:48:23 +0000
Subject: PHP 4.0 Bug #8195 Updated: strncasecmp returns incorrect value
Groups: php.dev 
Request: Send a blank email to php-dev+get-40934@lists.php.net to get a copy of this message
ID: 8195 Updated by: stas Reported By: kway@wgate.com Old-Status: Open Status: Closed Bug Type: Scripting Engine problem Assigned To: Comments: Fixed in CVS, thanks. Previous Comments: --------------------------------------------------------------------------- [2000-12-11 16:08:35] kway@wgate.com strncasecmp returns len1 - len2, regardless of how many characters we wanted to compare, thus strncasecmp('foo', 'foosomethingelse', 3) would return -13 instead of 0, as would be correct. The following patch fixes this problem properly: Index: zend_operators.c =================================================================== RCS file: /repository/Zend/zend_operators.c,v retrieving revision 1.88 diff -u -5 -r1.88 zend_operators.c --- zend_operators.c 2000/11/21 22:41:49 1.88 +++ zend_operators.c 2000/12/11 21:06:29 @@ -1561,11 +1561,11 @@ if (c1 != c2) { return c1 - c2; } } - return len1 - len2; + return MIN(length, len1) - MIN(length, len2); } ZEND_API int zend_binary_zval_strcmp(zval *s1, zval *s2) { --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=8195

« previous php.dev (#40934) next »