mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Fix GH-19798: XP_SOCKET XP_SSL: Incorrect condition for Win
This fixes incorrect type conversion and subsequent check for Windows where returned socket is not an int. It should be noted that this is not really an issue as previous int would get negative so the check should still work. The issue actually happens only in master (PHP 8.5) where refactoring has been done and the type changed. Closes GH-19881
This commit is contained in:
5
NEWS
5
NEWS
@@ -70,6 +70,11 @@ PHP NEWS
|
||||
- Standard:
|
||||
. Fix shm corruption with coercion in options of unserialize(). (nielsdos)
|
||||
|
||||
- Streams:
|
||||
. Fixed bug GH-19798: XP_SOCKET XP_SSL (Socket stream modules): Incorrect
|
||||
condition for Win32/Win64. (Jakub Zelenka)
|
||||
|
||||
|
||||
- Tidy:
|
||||
. Fixed GH-19021 (improved tidyOptGetCategory detection).
|
||||
(arjendekorte, David Carlier, Peter Kokot)
|
||||
|
||||
@@ -2342,7 +2342,7 @@ static int php_openssl_sockop_stat(php_stream *stream, php_stream_statbuf *ssb)
|
||||
static inline int php_openssl_tcp_sockop_accept(php_stream *stream, php_openssl_netstream_data_t *sock,
|
||||
php_stream_xport_param *xparam STREAMS_DC) /* {{{ */
|
||||
{
|
||||
int clisock;
|
||||
php_socket_t clisock;
|
||||
bool nodelay = 0;
|
||||
zval *tmpzval = NULL;
|
||||
|
||||
@@ -2363,7 +2363,7 @@ static inline int php_openssl_tcp_sockop_accept(php_stream *stream, php_openssl_
|
||||
&xparam->outputs.error_code,
|
||||
nodelay);
|
||||
|
||||
if (clisock >= 0) {
|
||||
if (clisock != SOCK_ERR) {
|
||||
php_openssl_netstream_data_t *clisockdata = (php_openssl_netstream_data_t*) emalloc(sizeof(*clisockdata));
|
||||
|
||||
/* copy underlying tcp fields */
|
||||
|
||||
@@ -854,7 +854,7 @@ out:
|
||||
static inline int php_tcp_sockop_accept(php_stream *stream, php_netstream_data_t *sock,
|
||||
php_stream_xport_param *xparam STREAMS_DC)
|
||||
{
|
||||
int clisock;
|
||||
php_socket_t clisock;
|
||||
bool nodelay = 0;
|
||||
zval *tmpzval = NULL;
|
||||
|
||||
@@ -875,7 +875,7 @@ static inline int php_tcp_sockop_accept(php_stream *stream, php_netstream_data_t
|
||||
&xparam->outputs.error_code,
|
||||
nodelay);
|
||||
|
||||
if (clisock >= 0) {
|
||||
if (clisock != SOCK_ERR) {
|
||||
php_netstream_data_t *clisockdata = (php_netstream_data_t*) emalloc(sizeof(*clisockdata));
|
||||
|
||||
memcpy(clisockdata, sock, sizeof(*clisockdata));
|
||||
|
||||
Reference in New Issue
Block a user