From 754d2ee483598e67f866db9678bfffeba3842a30 Mon Sep 17 00:00:00 2001 From: Cristy Date: Thu, 1 Mar 2018 07:34:20 -0500 Subject: [PATCH] https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6627 --- MagickCore/property.c | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/MagickCore/property.c b/MagickCore/property.c index 66470643a..3b50b60d1 100644 --- a/MagickCore/property.c +++ b/MagickCore/property.c @@ -1726,39 +1726,24 @@ static MagickBooleanType SkipXMPValue(const char *value) static MagickBooleanType ValidateXMPProfile(const char *profile, const size_t length) { - const char - *p; - - if (length < 17) - return(MagickFalse); #if defined(MAGICKCORE_XML_DELEGATE) { xmlDocPtr - xmp; + document; /* Parse XML profile. */ - xmp=xmlReadMemory(profile,length,"xmp.xml",NULL,XML_PARSE_NOERROR | + document=xmlReadMemory(profile,length,"xmp.xml",NULL,XML_PARSE_NOERROR | XML_PARSE_NOWARNING); - if (xmp == (xmlDocPtr) NULL) + if (document == (xmlDocPtr) NULL) return(MagickFalse); - xmlFreeDoc(xmp); + xmlFreeDoc(document); + return(MagickTrue); } +#else + return(MagickFalse); #endif - p=profile; - while ((*p == '\t') || (*p == '\r') || (*p == '\n') || (*p == ' ')) - p++; - if (*p != '<') - return(MagickFalse); - if ((strstr(profile,"") == (char *) NULL) || - (strstr(profile,"") == (char *) NULL)) - return(MagickFalse); - return(MagickTrue); } static MagickBooleanType GetXMPProperty(const Image *image,const char *property) -- 2.40.0