Skip to content

Commit d6cd754

Browse files
committed
Merge branch 'PHP-8.4'
2 parents 265ac5b + c8bead8 commit d6cd754

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
@@ -938,7 +938,7 @@ PHP_FUNCTION(socket_read)
938938
ENSURE_SOCKET_VALID(php_sock);
939939

940940
/* overflow check */
941-
if ((length + 1) < 2) {
941+
if (length <= 0 || length == ZEND_LONG_MAX) {
942942
RETURN_FALSE;
943943
}
944944

@@ -1433,7 +1433,7 @@ PHP_FUNCTION(socket_recv)
14331433
ENSURE_SOCKET_VALID(php_sock);
14341434

14351435
/* overflow check */
1436-
if ((len + 1) < 2) {
1436+
if (len <= 0 || len == ZEND_LONG_MAX) {
14371437
RETURN_FALSE;
14381438
}
14391439

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)