Socket API drops expired timeouts for transfers queued behind a connection limit
该报告还没有中文解读。
原文摘录
摘自原文(20614 字符中的一小部分)
I found a way to make libcurl silently and permanently drop a transfer's `CURLOPT_TIMEOUT_MS`/`CURLOPT_CONNECTTIMEOUT_MS` deadline. It happens when that transfer is queued behind a connection-count limit and the application drives libcurl through the event-driven `curl_multi_socket_action()` API …
原文中的代码
// lib/multi.c:2316-2324 multistate(data, MSTATE_PENDING); /* move from process to pending set */ Curl_uint32_bset_remove(&multi->process, data->mid); Curl_uint32_bset_remove(&multi->dirty, data->mid); Curl_uint32_bset_add(&multi->pending, data->mid);
默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 curl 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @giant_anteater · 版权归作者与 curl 所有