diff options
author | Michael Tokarev <mjt@tls.msk.ru> | 2025-08-24 03:05:32 +0300 |
---|---|---|
committer | Michael Tokarev <mjt@tls.msk.ru> | 2025-09-03 10:57:50 +0300 |
commit | 606978500c3d18fb89a49844f253097b17f757de (patch) | |
tree | fc7481b4c95653093b457af6214299165bf88dcb /tests | |
parent | 1566b8c8df9e8603f5d03cc1a7708c4ecfda0897 (diff) | |
download | qemu-606978500c3d18fb89a49844f253097b17f757de.zip qemu-606978500c3d18fb89a49844f253097b17f757de.tar.gz qemu-606978500c3d18fb89a49844f253097b17f757de.tar.bz2 |
block/curl: fix curl internal handles handling
block/curl.c uses CURLMOPT_SOCKETFUNCTION to register a socket callback.
According to the documentation, this callback is called not just with
application-created sockets but also with internal curl sockets, - and
for such sockets, user data pointer is not set by the application, so
the result qemu crashing.
Pass BDRVCURLState directly to the callback function as user pointer,
instead of relying on CURLINFO_PRIVATE.
This problem started happening with update of libcurl from 8.9 to 8.10 --
apparently with this change curl started using private handles more.
(CURLINFO_PRIVATE is used in one more place, in curl_multi_check_completion() -
it might need a similar fix too)
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3081
Cc: qemu-stable@qemu.org
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Diffstat (limited to 'tests')
0 files changed, 0 insertions, 0 deletions