Ensure correct read of jpeg header blob

When using HIDL HAL, camera service rewrites jpeg header to match
camera3_jpeg_blob_v2 struct. The original buffer might be generated to
use the HIDL header which might have a smaller size and different memory
alignment requirements than camera3_jpeg_blob_v2. CameraServer puts the
header as the very last bytes of the incoming buffer. Since the size and
location of buffer is variable, it is possible that directly reading the
header values from the bufffer fails because of memory alignment
requirements.

This CL uses memcpy to extract the header into the stack to ensure we
don't run into memory alignment errors when reading the header from the
jpeg buffer.

Bug: 233986162
Test: Camera CTS Passes, and verified by partner
Change-Id: I8d7ef872b4c7319349ebd1c5e83707ef4724c744
1 file changed