File tree Expand file tree Collapse file tree 2 files changed +10
-10
lines changed Expand file tree Collapse file tree 2 files changed +10
-10
lines changed Original file line number Diff line number Diff line change @@ -370,7 +370,11 @@ char *sockets_strerror(int error) /* {{{ */
370
370
371
371
#ifndef PHP_WIN32
372
372
if (error < -10000 ) {
373
- error = - error - 10000 ;
373
+ if (error == INT_MIN ) {
374
+ error = 2147473648 ;
375
+ } else {
376
+ error = - error - 10000 ;
377
+ }
374
378
375
379
#ifdef HAVE_HSTRERROR
376
380
buf = hstrerror (error );
Original file line number Diff line number Diff line change @@ -3,20 +3,16 @@ GH-16267 - overflow on socket_strerror argument
3
3
--EXTENSIONS--
4
4
sockets
5
5
--SKIPIF--
6
- <?php if (PHP_INT_SIZE != 8 ) die (' skip 64-bit only ' ); ?>
6
+ <?php if (PHP_INT_SIZE != 8 ) die (" skip this test is for 64bit platform only " ); ?>
7
7
--FILE--
8
8
<?php
9
+ var_dump (socket_strerror (-2147483648 ));
9
10
try {
10
- socket_strerror (PHP_INT_MIN );
11
- } catch (\ValueError $ e ) {
12
- echo $ e ->getMessage () . PHP_EOL ;
13
- }
14
- try {
15
- socket_strerror (PHP_INT_MAX );
11
+ socket_strerror (2147483648 );
16
12
} catch (\ValueError $ e ) {
17
13
echo $ e ->getMessage () . PHP_EOL ;
18
14
}
19
15
?>
20
16
--EXPECTF--
21
- socket_strerror(): Argument #1 ($error_code) must be between %s and %s
22
- socket_strerror(): Argument #1 ($error_code) must be between %s and %s
17
+ string(%d) "%S"
18
+ socket_strerror(): Argument #1 ($error_code) must be between %i and %d
You can’t perform that action at this time.
0 commit comments