github swoole/swoole-src v6.2.3

3 hours ago
  • Fixed an issue in SWOOLE_THREAD mode where Swoole\Server could not start if the set() method was not called.

  • Fixed a NULL pointer dereference that occurred when querying port properties during server shutdown, caused by the ListenPort pointer being NULL.

  • Fixed an issue where, after a hooked TLS stream completed its handshake in Socket::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 HTTP server still returned success when the protocol setting was rejected or accept failed.

  • Fixed an issue where HTTP compression used the wrong data format when returning deflate encoding.

  • Fixed an issue where destroying a native CurlHandle did not hand the object destruction work back to ext-curl when native hook was not enabled, resulting in incorrect destruction logic.

  • Fixed an issue in cURL multi where, under CURL_POLL_INOUT, the "readable and writable simultaneously" event mask was not correctly restored, causing HTTP/2 duplex transmission to be repeatedly woken up during flow-control blocking and form a busy loop.

  • Fixed the lack of timeout support for wait/wakeup in atomic operations (Atomic) on the Windows platform.

  • 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 WebSocket decoder 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 socket with iouring enabled when SSL/TLS was enabled.

  • Fixed an issue where improper maintenance of the Swoole coroutine context chain (origin_ctx) produced dangling pointers, causing occasional segmentation faults when a Worker parsed HTTP parameters.

  • Fixed a NULL pointer dereference crash caused by passing a NULL port pointer when querying port properties (ServerPortProperty) while the Swoole server was closing a port.

  • Fixed issues in Swoole\Coroutine\Socket's setOption() on SO_LINGER, SO_RCVTIMEO, and SO_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)的问题。

  • 修复了被 HookTLS 流在 Socket::connect() 中完成握手后,若该调用失败或被取消,流传输层仍会再次尝试启用加密,而非直接返回失败的问题。

  • 修复了协程 HTTP 服务器在协议设置被拒绝或 accept 失败时仍返回成功的问题。

  • 修复了 HTTP 压缩在返回 deflate 编码时使用了错误数据格式的问题。

  • 修复了未启用原生 hook 时,销毁原生 CurlHandle 未将对象释放工作交回 ext-curl,导致释放逻辑不正确的问题。

  • 修复了 cURL multiCURL_POLL_INOUT 状态下未正确恢复“同时可读可写”事件掩码,导致 HTTP/2 双向传输(duplex)在流控阻塞时反复被唤醒、形成忙循环的问题。

  • 修复了 Windows 平台下原子操作(Atomic)的 wait/wakeup 缺失超时支持的问题。

  • 修复了开启 send_yield 后,对端关闭连接导致协程无法被唤醒,进而发生协程泄露的问题。

  • 修复了 WebSocket 解码器未拒绝带压缩标志(RSV1)的控制帧(CLOSEPINGPONG),导致非法帧被错误接受的问题。

  • 修复了启用 iouring 的协程 socket 在启用 SSL/TLS 时读写行为不正确的问题。

  • 修复了 Swoole 协程上下文链(origin_ctx)维护不当产生悬空指针,导致 Worker 解析 HTTP 参数时偶发段错误的问题。

  • 修复了 Swoole 服务器关闭端口时,查询端口属性(ServerPortProperty)因传入 NULL 端口指针而导致空指针解引用崩溃的问题。

  • 修复了 Swoole\Coroutine\SocketsetOption()SO_LINGERSO_RCVTIMEOSO_SNDTIMEO 上参数校验错误、错误信息有误以及传入对象时崩溃的问题。

Don't miss a new swoole-src release

NewReleases is sending notifications on new releases.