-
Fixed an issue in
SWOOLE_THREADmode whereSwoole\Servercould not start if theset()method was not called. -
Fixed a NULL pointer dereference that occurred when querying port properties during server shutdown, caused by the
ListenPortpointer beingNULL. -
Fixed an issue where, after a hooked
TLSstream completed its handshake inSocket::connect(), the stream transport layer would attempt to enable encryption again instead of returning failure directly when the call failed or was canceled. -
Fixed an issue where the coroutine
HTTPserver still returned success when the protocol setting was rejected oracceptfailed. -
Fixed an issue where
HTTPcompression used the wrong data format when returningdeflateencoding. -
Fixed an issue where destroying a native
CurlHandledid not hand the object destruction work back toext-curlwhen nativehookwas not enabled, resulting in incorrect destruction logic. -
Fixed an issue in
cURL multiwhere, underCURL_POLL_INOUT, the "readable and writable simultaneously" event mask was not correctly restored, causingHTTP/2duplex transmission to be repeatedly woken up during flow-control blocking and form a busy loop. -
Fixed the lack of timeout support for
wait/wakeupin atomic operations (Atomic) on theWindowsplatform. -
Fixed an issue where, after enabling
send_yield, the peer closing the connection prevented the coroutine from being woken up, resulting in a coroutine leak. -
Fixed an issue where the
WebSocketdecoder did not reject control frames (CLOSE,PING,PONG) with the compression flag (RSV1), causing illegal frames to be incorrectly accepted. -
Fixed incorrect read/write behavior in coroutine
socketwithiouringenabled whenSSL/TLSwas enabled. -
Fixed an issue where improper maintenance of the
Swoolecoroutine context chain (origin_ctx) produced dangling pointers, causing occasional segmentation faults when aWorkerparsedHTTPparameters. -
Fixed a NULL pointer dereference crash caused by passing a
NULLport pointer when querying port properties (ServerPortProperty) while theSwooleserver was closing a port. -
Fixed issues in
Swoole\Coroutine\Socket'ssetOption()onSO_LINGER,SO_RCVTIMEO, andSO_SNDTIMEO, including incorrect parameter validation, incorrect error messages, and crashes when an object was passed in. -
修复了在
SWOOLE_THREAD模式下,Swoole\Server未调用set()方法时无法启动的问题。 -
修复了关闭服务器时,因
ListenPort指针为NULL,查询端口属性触发空指针解引用(NULL pointer dereference)的问题。 -
修复了被
Hook的TLS流在Socket::connect()中完成握手后,若该调用失败或被取消,流传输层仍会再次尝试启用加密,而非直接返回失败的问题。 -
修复了协程
HTTP服务器在协议设置被拒绝或accept失败时仍返回成功的问题。 -
修复了
HTTP压缩在返回deflate编码时使用了错误数据格式的问题。 -
修复了未启用原生
hook时,销毁原生CurlHandle未将对象释放工作交回ext-curl,导致释放逻辑不正确的问题。 -
修复了
cURL multi在CURL_POLL_INOUT状态下未正确恢复“同时可读可写”事件掩码,导致HTTP/2双向传输(duplex)在流控阻塞时反复被唤醒、形成忙循环的问题。 -
修复了
Windows平台下原子操作(Atomic)的wait/wakeup缺失超时支持的问题。 -
修复了开启
send_yield后,对端关闭连接导致协程无法被唤醒,进而发生协程泄露的问题。 -
修复了
WebSocket解码器未拒绝带压缩标志(RSV1)的控制帧(CLOSE、PING、PONG),导致非法帧被错误接受的问题。 -
修复了启用
iouring的协程socket在启用SSL/TLS时读写行为不正确的问题。 -
修复了
Swoole协程上下文链(origin_ctx)维护不当产生悬空指针,导致Worker解析HTTP参数时偶发段错误的问题。 -
修复了
Swoole服务器关闭端口时,查询端口属性(ServerPortProperty)因传入NULL端口指针而导致空指针解引用崩溃的问题。 -
修复了
Swoole\Coroutine\Socket的setOption()在SO_LINGER、SO_RCVTIMEO、SO_SNDTIMEO上参数校验错误、错误信息有误以及传入对象时崩溃的问题。