summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarti Maria <info@littlecms.com>2013-06-25 18:21:52 +0200
committerMarti Maria <info@littlecms.com>2013-06-25 18:21:52 +0200
commit45034fbaf652b5a9ab5d5486032cc4695bab062d (patch)
tree9cf468c3708c374fe4ddb387bc449204043215cf
parent91c2db7f2559be504211b283bc3a2c631d6f06d9 (diff)
downloadlcms2-45034fbaf652b5a9ab5d5486032cc4695bab062d.tar.gz
Fix for read dictionary tag
-rw-r--r--src/cmstypes.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/cmstypes.c b/src/cmstypes.c
index 8209556..019ad78 100644
--- a/src/cmstypes.c
+++ b/src/cmstypes.c
@@ -5089,14 +5089,22 @@ void *Type_Dictionary_Read(struct _cms_typehandler_struct* self, cmsIOHANDLER* i
if (!ReadOneMLUC(self, io, &a.DisplayValue, i, &DisplayValueMLU)) goto Error;
}
+ if (NameWCS == NULL || ValueWCS == NULL) {
+
+ cmsSignalError(self->ContextID, cmsERROR_CORRUPTION_DETECTED, "Bad dictionary Name/Value");
+ rc = FALSE;
+ }
+ else {
+
rc = cmsDictAddEntry(hDict, NameWCS, ValueWCS, DisplayNameMLU, DisplayValueMLU);
+ }
if (NameWCS != NULL) _cmsFree(self ->ContextID, NameWCS);
if (ValueWCS != NULL) _cmsFree(self ->ContextID, ValueWCS);
if (DisplayNameMLU != NULL) cmsMLUfree(DisplayNameMLU);
if (DisplayValueMLU != NULL) cmsMLUfree(DisplayValueMLU);
- if (!rc) return FALSE;
+ if (!rc) goto Error;
}
FreeArray(&a);