Skip to content

Commit c8bead8

Browse files
committed
Merge branch 'PHP-8.3' into PHP-8.4
2 parents a73fe50 + 8cbc0c5 commit c8bead8

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

ext/sockets/sockets.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -915,7 +915,7 @@ PHP_FUNCTION(socket_read)
915915
ENSURE_SOCKET_VALID(php_sock);
916916

917917
/* overflow check */
918-
if ((length + 1) < 2) {
918+
if (length <= 0 || length == ZEND_LONG_MAX) {
919919
RETURN_FALSE;
920920
}
921921

@@ -1365,7 +1365,7 @@ PHP_FUNCTION(socket_recv)
13651365
ENSURE_SOCKET_VALID(php_sock);
13661366

13671367
/* overflow check */
1368-
if ((len + 1) < 2) {
1368+
if (len <= 0 || len == ZEND_LONG_MAX) {
13691369
RETURN_FALSE;
13701370
}
13711371

ext/sockets/tests/gh17921.phpt

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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)

0 commit comments

Comments
 (0)