summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
author Dichen Zhang <dichenzhang@google.com> 2023-05-18 03:40:45 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-05-18 03:40:45 +0000
commit76b526c4695c97078ba6ee73d7edd37b6f89a143 (patch)
tree8aac4b1929e5f91fa556dc617596460f462a61c5 /libs
parent3b13bff39d67100ea0705efddac78c1f67715f3c (diff)
parentde0a36107ba200765e2a50bcdc1d8297346cb089 (diff)
Merge "ultrahdr: fix input buffer access in tonemap" into udc-dev am: bb319326a6 am: de0a36107b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/23288897 Change-Id: I82a320ead28314eee1100ca96b0d96e3d4bcc602 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'libs')
-rw-r--r--libs/ultrahdr/jpegr.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/libs/ultrahdr/jpegr.cpp b/libs/ultrahdr/jpegr.cpp
index ef927e3c56..cb8197c387 100644
--- a/libs/ultrahdr/jpegr.cpp
+++ b/libs/ultrahdr/jpegr.cpp
@@ -1041,21 +1041,18 @@ status_t JpegR::toneMap(jr_uncompressed_ptr src, jr_uncompressed_ptr dest) {
return ERROR_JPEGR_INVALID_NULL_PTR;
}
- size_t src_luma_stride = src->luma_stride;
- size_t src_chroma_stride = src->chroma_stride;
uint16_t* src_luma_data = reinterpret_cast<uint16_t*>(src->data);
- uint16_t* src_chroma_data = reinterpret_cast<uint16_t*>(src->chroma_data);
+ size_t src_luma_stride = src->luma_stride == 0 ? src->width : src->luma_stride;
- if (src_chroma_data == nullptr) {
- src_chroma_data = &reinterpret_cast<uint16_t*>(src->data)[src_luma_stride * src->height];
+ uint16_t* src_chroma_data;
+ size_t src_chroma_stride;
+ if (src->chroma_data == nullptr) {
+ src_chroma_stride = src_luma_stride;
+ src_chroma_data = &reinterpret_cast<uint16_t*>(src->data)[src_luma_stride * src->height];
+ } else {
+ src_chroma_stride = src->chroma_stride;
+ src_chroma_data = reinterpret_cast<uint16_t*>(src->chroma_data);
}
- if (src_luma_stride == 0) {
- src_luma_stride = src->width;
- }
- if (src_chroma_stride == 0) {
- src_chroma_stride = src_luma_stride;
- }
-
dest->width = src->width;
dest->height = src->height;