rem: free (image->img);
add: g_free (image->img);
context: gtk_xine_get_current_frame_rgb (GtkXine * gtx, gint * width_ret,				gint * height_ret){    gint    err = 0;    struct prvt_image_s *image;    guchar *rgb = NULL;    gint    width, height;    g_return_val_if_fail (gtx, NULL);    g_return_val_if_fail (GTK_IS_XINE (gtx), NULL);    g_return_val_if_fail (gtx->priv->xine, NULL);    g_return_val_if_fail (gtx->priv->stream != NULL, 0);    g_return_val_if_fail (width_ret && height_ret, NULL);    image = g_new0 (struct prvt_image_s, 1);    if (!image)    {	*width_ret = 0;	*height_ret = 0;	return NULL;    }    image->y = image->u = image->v = image->yuy2 = image->img = NULL;    width = xine_get_stream_info (gtx->priv->stream,		    XINE_STREAM_INFO_VIDEO_WIDTH);    height = xine_get_stream_info (gtx->priv->stream,		    XINE_STREAM_INFO_VIDEO_HEIGHT);    image->img = g_malloc (width * height * 2);    if (!image->img)    {	*width_ret = 0;	*height_ret = 0;	g_free (image);	return NULL;    }    err = xine_get_current_frame (gtx->priv->stream,				  &image->width, &image->height,				  &image->ratio_code,				  &image->format, image->img);    if (err == 0)    {	*width_ret = 0;	*height_ret = 0;	g_free (image->img);	g_free (image);	return NULL;    }    /*     * the dxr3 driver does not allocate yuv buffers      */    /*     * image->u and image->v are always 0 for YUY2      */    if (!image->img)    {	*width_ret = 0;	*height_ret = 0;	g_free (image->img);	g_free (image);	return NULL;    }    rgb = xine_frame_to_rgb (image);    *width_ret = image->width;    *height_ret = image->height;    free (image->img);    g_free (image);    return rgb;}