| Index: third_party/lcms2-2.6/0006-memory-leak-Type_NamedColor_Read.patch
|
| diff --git a/third_party/lcms2-2.6/0006-memory-leak-Type_NamedColor_Read.patch b/third_party/lcms2-2.6/0006-memory-leak-Type_NamedColor_Read.patch
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5d25d5a737ca1d2962c65a18dce6be7fe300ac89
|
| --- /dev/null
|
| +++ b/third_party/lcms2-2.6/0006-memory-leak-Type_NamedColor_Read.patch
|
| @@ -0,0 +1,22 @@
|
| +diff --git a/third_party/lcms2-2.6/src/cmstypes.c b/third_party/lcms2-2.6/src/cmstypes.c
|
| +index feba387..4d24fc2 100644
|
| +--- a/third_party/lcms2-2.6/src/cmstypes.c
|
| ++++ b/third_party/lcms2-2.6/src/cmstypes.c
|
| +@@ -3102,7 +3102,7 @@ void *Type_NamedColor_Read(struct _cms_typehandler_struct* self, cmsIOHANDLER* i
|
| +
|
| + if (nDeviceCoords > cmsMAXCHANNELS) {
|
| + cmsSignalError(self->ContextID, cmsERROR_RANGE, "Too many device coordinates '%d'", nDeviceCoords);
|
| +- return 0;
|
| ++ goto Error;
|
| + }
|
| + for (i=0; i < count; i++) {
|
| +
|
| +@@ -3111,7 +3111,7 @@ void *Type_NamedColor_Read(struct _cms_typehandler_struct* self, cmsIOHANDLER* i
|
| + char Root[33];
|
| +
|
| + memset(Colorant, 0, sizeof(Colorant));
|
| +- if (io -> Read(io, Root, 32, 1) != 1) return NULL;
|
| ++ if (io -> Read(io, Root, 32, 1) != 1) goto Error;
|
| + Root[32] = 0;
|
| + if (!_cmsReadUInt16Array(io, 3, PCS)) goto Error;
|
| + if (!_cmsReadUInt16Array(io, nDeviceCoords, Colorant)) goto Error;
|
|
|