From 45034fbaf652b5a9ab5d5486032cc4695bab062d Mon Sep 17 00:00:00 2001 From: Marti Maria Date: Tue, 25 Jun 2013 18:21:52 +0200 Subject: Fix for read dictionary tag --- src/cmstypes.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/cmstypes.c') 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); -- cgit v1.2.1