summaryrefslogtreecommitdiffstats
path: root/third_party/qcms
diff options
context:
space:
mode:
authornoel <noel@chromium.org>2015-07-20 00:19:48 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-20 07:20:29 +0000
commitcec3f4bf3f77ee6e57ed7e343babb1d07ee28b7e (patch)
treec6bcc36b7caccd91dcbf340ec5da14dcec0adcb5 /third_party/qcms
parent727e15ba9987bc0aa23ba8f099a8fb52ca715211 (diff)
downloadchromium_src-cec3f4bf3f77ee6e57ed7e343babb1d07ee28b7e.zip
chromium_src-cec3f4bf3f77ee6e57ed7e343babb1d07ee28b7e.tar.gz
chromium_src-cec3f4bf3f77ee6e57ed7e343babb1d07ee28b7e.tar.bz2
[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}
Diffstat (limited to 'third_party/qcms')
-rw-r--r--third_party/qcms/README.chromium2
-rw-r--r--third_party/qcms/src/transform.c10
2 files changed, 7 insertions, 5 deletions
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;