Hello, Issue description: Running remote-viewer with QXL and X11 display. In VM, windows clients, change color parameter 16bits to 32 bits involves a remote-viewer crash. "glibc detected free() invalid pointer type". The following patch resolves this issue. patch: diff --git a/tmp/spice-gtk-git-26-nov/gtk/spice-widget-x11.c b/gtk/spice-widget-x11.c index 05b8d56..10aeeb6 100644 --- a/tmp/spice-gtk-git-26-nov/gtk/spice-widget-x11.c +++ b/gtk/spice-widget-x11.c @@ -144,7 +144,7 @@ int spicex_image_create(SpiceDisplay *display) g_return_val_if_fail(d->vi != NULL, 1); } if (d->convert) { - d->data = g_malloc0(d->height * d->stride); /* pixels are 32 bits */ + d->data = g_malloc(d->height * d->stride); /* pixels are 32 bits */ } d->gc = XCreateGC(d->dpy, gdk_x11_drawable_get_xid(window), @@ -200,8 +200,13 @@ void spicex_image_destroy(SpiceDisplay *display) d->ximage->data = NULL; XDestroyImage(d->ximage); d->ximage = NULL; - if (d->convert) - d->data = 0; + if(d->convert){ + if(d->data){ + d->data = 0; + g_free(d->data); + d->data = NULL; + } + } } if (d->shminfo) { XShmDetach(d->dpy, d->shminfo); @@ -212,10 +217,6 @@ void spicex_image_destroy(SpiceDisplay *display) XFreeGC(d->dpy, d->gc); d->gc = NULL; } - if (d->convert && d->data) { - g_free(d->data); - d->data = NULL; - } } G_GNUC_INTERNAL _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel