[Spice-devel] [PATCH spice-server] red-worker: Fix leak processing update commands

Christophe Fergeau cfergeau at redhat.com
Mon Sep 4 15:31:55 UTC 2017


On Mon, Sep 04, 2017 at 11:22:48AM -0400, Frediano Ziglio wrote:
> > 
> > Ah yeah, something might expect it was modified. Oh well, your initial
> > suggestion is probably good then, though I'd explicitly check for a NULL
> > msg->qxl_dirty_rects I think rather than msg->qxl_dirty_rects !=
> > qxl_dirty_rects.
> 
> I cannot just check for NULL, Qemu could decide to pass a not NULL pointer,
> in this can we can't free the memory used by Qemu without causing a potential
> invalid free (the pointer could be from stack or allocated with another
> allocator). Actually I'm not 100% sure in all cases we get a NULL but
> supposing NULL would be a API breakage.

The only case when you are going to allocate memory is if
msg->qxl_dirty_rects is NULL.
So you could do 

if (msg->qxl_dirty_rects == NULL) {
    free(qxl_dirty_rects);
}
rather than

if (msg->qxl_dirty_rects != qxl_dirty_rects) {
    free(qxl_dirty_rects);
}


More information about the Spice-devel mailing list