File tree 2 files changed +21
-3
lines changed 2 files changed +21
-3
lines changed Original file line number Diff line number Diff line change @@ -884,7 +884,7 @@ PHP_FUNCTION(socket_read)
884
884
ENSURE_SOCKET_VALID (php_sock );
885
885
886
886
/* overflow check */
887
- if (( length + 1 ) < 2 ) {
887
+ if (length <= 0 || length > ZSTR_MAX_LEN ) {
888
888
RETURN_FALSE ;
889
889
}
890
890
@@ -1326,7 +1326,7 @@ PHP_FUNCTION(socket_recv)
1326
1326
ENSURE_SOCKET_VALID (php_sock );
1327
1327
1328
1328
/* overflow check */
1329
- if (( len + 1 ) < 2 ) {
1329
+ if (len <= 0 || len > ZSTR_MAX_LEN ) {
1330
1330
RETURN_FALSE ;
1331
1331
}
1332
1332
@@ -1411,7 +1411,7 @@ PHP_FUNCTION(socket_recvfrom)
1411
1411
/* overflow check */
1412
1412
/* Shouldthrow ? */
1413
1413
1414
- if (arg3 <= 0 || arg3 > ZEND_LONG_MAX - 1 ) {
1414
+ if (arg3 <= 0 || arg3 > ZSTR_MAX_LEN - 1 ) {
1415
1415
RETURN_FALSE ;
1416
1416
}
1417
1417
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ GH-16267 - overflow on socket_strerror argument
3
+ --EXTENSIONS--
4
+ sockets
5
+ --FILE--
6
+ <?php
7
+ $ s_c_l = socket_create_listen (0 );
8
+ var_dump (socket_read ($ s_c_l , PHP_INT_MAX ));
9
+ var_dump (socket_read ($ s_c_l , PHP_INT_MIN ));
10
+ $ a = "" ;
11
+ var_dump (socket_recv ($ s_c_l , $ a , PHP_INT_MAX , 0 ));
12
+ var_dump (socket_recv ($ s_c_l , $ a , PHP_INT_MIN , 0 ));
13
+ ?>
14
+ --EXPECT--
15
+ bool(false)
16
+ bool(false)
17
+ bool(false)
18
+ bool(false)
You can’t perform that action at this time.
0 commit comments