HAL3: Fix a use-after-free bug

mm_camera_buf_def_t for the source YUV of HDR+ request is wrapped in a
shared_ptr, and the memory for mm_camera_buf_def_t is deallocated after
returnYuvBufferAndEncode returns.

However, mm_camera_buf_def_t pointer is still used in the JPEG callback
later on. So we keep the mm_camera_buf_def_t struct around by keeping a
shared pointer to it.

Also fix a memory leak of input metadata mm_camera_buf_def_t.

Test: for i in {1..50}; do atest -it NativeStillCaptureTest#testStillCapture; done
Bug: 150004253
Change-Id: I67ce2db1aca20245a5c3175008f17640fe6f5390
4 files changed
tree: 859c0e4db256343e763cb9f616c878a4aa219e90
  1. msm8998/
  2. Android.mk
  3. CleanSpec.mk