> On Fri, 27 May 2016, Frediano Ziglio wrote: > > > > > > > The source area should not extend outside the source bitmap, or have > > > swapped coordinates. > > > > > > Signed-off-by: Francois Gouget <fgouget@xxxxxxxxxxxxxxx> > > > --- > > > server/red-parse-qxl.c | 12 ++++++++++++ > > > 1 file changed, 12 insertions(+) > > > > > > > I checked and if this function return error the resource is correctly > > released. > > Yes. So the original patch was correct. > > > > > + (red->src_area.left < 0 || > > > + red->src_area.left > red->src_area.right || > > > + red->src_area.right > red->src_bitmap->u.bitmap.x || > > > + red->src_area.top < 0 || red->src_area.top > > > > red->src_area.bottom > > > || > > > + red->src_area.bottom > red->src_bitmap->u.bitmap.y)) { > > > + red_put_image(red->src_bitmap); > > > > Mm... this make me think you didn't test the code.. this cause > > a double free in the current code > > I tested the original patch but I failed to retest the error condition > after adding the red_put_image() call. I have now done that, found the > double free, and so I recommend going back to the original patch. > Can I suggest @@ -682,6 +682,20 @@ static int red_get_copy_ptr(RedMemSlotInfo *slots, int group_id, return 1; } red_get_rect_ptr(&red->src_area, &qxl->src_area); + /* The source area should not extend outside the source bitmap or have + * swapped coordinates. + */ + if (red->src_area.left < 0 || + red->src_area.left > red->src_area.right || + red->src_area.top < 0 || + red->src_area.top > red->src_area.bottom) { + return 1; + } + if (red->src_bitmap->descriptor.type == SPICE_IMAGE_TYPE_BITMAP && + (red->src_area.right > red->src_bitmap->u.bitmap.x || + red->src_area.bottom > red->src_bitmap->u.bitmap.y)) { + return 1; + } red->rop_descriptor = qxl->rop_descriptor; red->scale_mode = qxl->scale_mode; red_get_qmask_ptr(slots, group_id, &red->mask, &qxl->mask, flags); ? Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel