From cec3f4bf3f77ee6e57ed7e343babb1d07ee28b7e Mon Sep 17 00:00:00 2001 From: noel Date: Mon, 20 Jul 2015 00:19:48 -0700 Subject: [qcms] Apply Fix potential leaks in qcms_transform_create Apply upstream fix https://bugzilla.mozilla.org/show_bug.cgi?id=1168480 which avoids transform data leaks if color transform creation fails. BUG=None Review URL: https://codereview.chromium.org/1242683002 Cr-Commit-Position: refs/heads/master@{#339418} --- third_party/qcms/README.chromium | 2 ++ third_party/qcms/src/transform.c | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'third_party/qcms') diff --git a/third_party/qcms/README.chromium b/third_party/qcms/README.chromium index 2bb6427..b870696 100644 --- a/third_party/qcms/README.chromium +++ b/third_party/qcms/README.chromium @@ -87,6 +87,8 @@ The following changes have been made since qcms was imported: - https://bugzilla.mozilla.org/show_bug.cgi?id=764181 - Drop SSE1 code as Chromium mandates SSE2 as a minimum requirement - https://code.google.com/p/chromium/issues/detail?id=506856 + - Apply Fix potential leaks in qcms_transform_create + - https://bugzilla.mozilla.org/show_bug.cgi?id=1168480 For the Chromium changes, since the import, in a patch format run: git diff b8456f38 src diff --git a/third_party/qcms/src/transform.c b/third_party/qcms/src/transform.c index e87be7f..510c9f8 100644 --- a/third_party/qcms/src/transform.c +++ b/third_party/qcms/src/transform.c @@ -1249,7 +1249,7 @@ qcms_transform* qcms_transform_create( if (out_type != QCMS_DATA_RGB_8 && out_type != QCMS_DATA_RGBA_8) { assert(0 && "output type"); - transform_free(transform); + qcms_transform_release(transform); return NULL; } @@ -1270,7 +1270,7 @@ qcms_transform* qcms_transform_create( qcms_transform *result = qcms_transform_precacheLUT_float(transform, in, out, 33, in_type); if (!result) { assert(0 && "precacheLUT failed"); - transform_free(transform); + qcms_transform_release(transform); return NULL; } return result; @@ -1300,7 +1300,7 @@ qcms_transform* qcms_transform_create( if (in_type != QCMS_DATA_RGB_8 && in_type != QCMS_DATA_RGBA_8){ assert(0 && "input type"); - transform_free(transform); + qcms_transform_release(transform); return NULL; } if (precache) { @@ -1364,7 +1364,7 @@ qcms_transform* qcms_transform_create( if (in_type != QCMS_DATA_GRAY_8 && in_type != QCMS_DATA_GRAYA_8){ assert(0 && "input type"); - transform_free(transform); + qcms_transform_release(transform); return NULL; } @@ -1389,7 +1389,7 @@ qcms_transform* qcms_transform_create( } } else { assert(0 && "unexpected colorspace"); - transform_free(transform); + qcms_transform_release(transform); return NULL; } return transform; -- cgit v1.1