gdiplus: Fix cleanup after errors in GdipCloneImage.
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
index 22895c7..73a6bd6 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -746,12 +746,14 @@
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));