summaryrefslogtreecommitdiff
path: root/third_party/lcms/0008-memory-leak-Type_MPEmatrix_Read.patch
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/lcms/0008-memory-leak-Type_MPEmatrix_Read.patch')
-rw-r--r--third_party/lcms/0008-memory-leak-Type_MPEmatrix_Read.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/third_party/lcms/0008-memory-leak-Type_MPEmatrix_Read.patch b/third_party/lcms/0008-memory-leak-Type_MPEmatrix_Read.patch
new file mode 100644
index 0000000000..8cc477fb8e
--- /dev/null
+++ b/third_party/lcms/0008-memory-leak-Type_MPEmatrix_Read.patch
@@ -0,0 +1,30 @@
+diff --git a/third_party/lcms/src/cmstypes.c b/third_party/lcms/src/cmstypes.c
+index 441d6bb..15199c7 100644
+--- a/third_party/lcms/src/cmstypes.c
++++ b/third_party/lcms/src/cmstypes.c
+@@ -4203,7 +4203,11 @@ void *Type_MPEmatrix_Read(struct _cms_typehandler_struct* self, cmsIOHANDLER* io
+
+ cmsFloat32Number v;
+
+- if (!_cmsReadFloat32Number(io, &v)) return NULL;
++ if (!_cmsReadFloat32Number(io, &v)) {
++ _cmsFree(self ->ContextID, Matrix);
++ _cmsFree(self ->ContextID, Offsets);
++ return NULL;
++ }
+ Matrix[i] = v;
+ }
+
+@@ -4212,7 +4216,11 @@ void *Type_MPEmatrix_Read(struct _cms_typehandler_struct* self, cmsIOHANDLER* io
+
+ cmsFloat32Number v;
+
+- if (!_cmsReadFloat32Number(io, &v)) return NULL;
++ if (!_cmsReadFloat32Number(io, &v)) {
++ _cmsFree(self ->ContextID, Matrix);
++ _cmsFree(self ->ContextID, Offsets);
++ return NULL;
++ }
+ Offsets[i] = v;
+ }
+