Module: wine Branch: master Commit: cfe2b3fa0e7509314c509f832f509936c88688d8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=cfe2b3fa0e7509314c509f832f...
Author: Vincent Povirk vincent@codeweavers.com Date: Tue Jul 18 11:35:28 2017 -0500
gdiplus: Don't require specific gdi+ versions in metafile structures.
Based on testing of manually edited metafiles, only the signature portion of version fields are tested, not the version number.
Signed-off-by: Vincent Povirk vincent@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdiplus/gdiplus_private.h | 1 + dlls/gdiplus/region.c | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h index 88109d7..d6806cc 100644 --- a/dlls/gdiplus/gdiplus_private.h +++ b/dlls/gdiplus/gdiplus_private.h @@ -41,6 +41,7 @@
#define VERSION_MAGIC 0xdbc01001 #define VERSION_MAGIC2 0xdbc01002 +#define VALID_MAGIC(x) (((x) & 0xfffff000) == 0xdbc01000) #define TENSION_CONST (0.3)
#define GIF_DISPOSE_UNSPECIFIED 0 diff --git a/dlls/gdiplus/region.c b/dlls/gdiplus/region.c index 35fef8b..390b50f 100644 --- a/dlls/gdiplus/region.c +++ b/dlls/gdiplus/region.c @@ -961,7 +961,7 @@ static GpStatus read_element(struct memory_buffer *mbuf, GpRegion *region, regio ERR("failed to read path header\n"); return InvalidParameter; } - if (path_header->magic != VERSION_MAGIC) + if (!VALID_MAGIC(path_header->magic)) { ERR("invalid path header magic %#x\n", path_header->magic); return InvalidParameter; @@ -1069,8 +1069,7 @@ GpStatus WINGDIPAPI GdipCreateRegionRgnData(GDIPCONST BYTE *data, INT size, GpRe init_memory_buffer(&mbuf, data, size);
region_header = buffer_read(&mbuf, sizeof(*region_header)); - if (!region_header || (region_header->magic != VERSION_MAGIC && - region_header->magic != VERSION_MAGIC2)) + if (!region_header || !VALID_MAGIC(region_header->magic)) return InvalidParameter;
status = GdipCreateRegion(region);