On Wed, Nov 20, 2019 at 11:48:56AM +0000, Daniel P. Berrangé wrote: > On Tue, Nov 19, 2019 at 11:16:26AM +0000, Stefan Hajnoczi wrote: > > The virtqueue element returned by vu_queue_pop() is allocated using > > malloc(3) by virtqueue_alloc_element(). Use the matching free(3) > > function instead of glib's g_free(). > > Just as an FYI, since glib 2.46 g_malloc is hardcoded to use the > system allocator, so it is now guaranteed that g_malloc/malloc > and g_free/free are safely interchangable. I recently got this > clarified in the glib docs: > > https://gitlab.gnome.org/GNOME/glib/merge_requests/1099//diffs > > QEMU mandates 2.48 so we are now safe in that regard > > For readability/sanity sake I'd still suggest matching functions > but it is not a functional danger any more. Even when it was a > risk, that risk only arose if you called GLib's API for installing > a custom allocator callback which QEMU never did, so it was always > a non-issue.
You are right, although QEMU did use g_mem_set_vtable(). The custom functions still used malloc() underneath though so it would be safe anyway: commit 98cf48f60aa4999f5b2808569a193a401a390e6a Author: Paolo Bonzini <pbonz...@redhat.com> Date: Wed Sep 16 17:38:44 2015 +0200 trace: remove malloc tracing
signature.asc
Description: PGP signature