diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c index 22895c7d0cb..73a6bd659ee 100644 --- a/dlls/gdiplus/image.c +++ b/dlls/gdiplus/image.c @@ -746,12 +746,14 @@ GpStatus WINGDIPAPI GdipCloneImage(GpImage *image, GpImage **cloneImage) GdipBitmapUnlockBits((GpBitmap*)*cloneImage, &lockeddata_dst); } - GdipBitmapUnlockBits(bitmap, &lockeddata_src); + if (stat != Ok) + GdipDisposeImage(*cloneImage); } + GdipBitmapUnlockBits(bitmap, &lockeddata_src); + if (stat != Ok) { - GdipDisposeImage(*cloneImage); *cloneImage = NULL; } else memcpy(&(*cloneImage)->format, &image->format, sizeof(GUID));