1
0
mirror of https://github.com/php/php-src.git synced 2026-04-28 10:43:30 +02:00
Files
Max Kellermann c1a06704da Add ZEND_THREEWAY_COMPARE() macro to fix casting underflowed unsigned to signed (#8220)
Casting a huge unsigned value to signed is implementation-defined
behavior in C.  By introducing the ZEND_THREEWAY_COMPARE() macro, we
can sidestep this integer overflow/underflow/casting problem.
2022-06-08 13:24:18 +01:00

23 lines
728 B
PHP

--TEST--
Test strncasecmp() function : usage variations - binary safe
--FILE--
<?php
/* Test strncasecmp() function with null terminated strings and binary values passed to 'str1' & 'str2' */
echo "*** Test strncasecmp() function: with null terminated strings and binary inputs ***\n";
/* A binary function should not expect a null terminated string, and it should treat input as a raw stream of data */
$str1 = "Hello\0world";
$str2 = "Hello\0";
$str3 = "Hello,".chr(0)."world";
var_dump( strncasecmp($str1, $str2, 12) );
var_dump( strncasecmp($str3, "Hello,world", 12) );
echo "*** Done ***\n";
?>
--EXPECT--
*** Test strncasecmp() function: with null terminated strings and binary inputs ***
int(1)
int(-119)
*** Done ***