On Sun, Aug 24, 2025 at 03:11:42AM +0300, Michael Tokarev wrote: > 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-sta...@qemu.org > Signed-off-by: Michael Tokarev <m...@tls.msk.ru> > --- > block/curl.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-)
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|