CameraMetadata: avoid memory leak in case allocate_camera_metadata fails.
Bug: 186686705
Test: Native camera cts tests (basic validity)
Change-Id: I68339109d1f33facdab7ad8b689624f987cb274e
Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
diff --git a/camera/CameraMetadata.cpp b/camera/CameraMetadata.cpp
index 96ea5f2..a4ae71b 100644
--- a/camera/CameraMetadata.cpp
+++ b/camera/CameraMetadata.cpp
@@ -528,6 +528,8 @@
mBuffer = allocate_camera_metadata(newEntryCount,
newDataCount);
if (mBuffer == NULL) {
+ // Maintain old buffer to avoid potential memory leak.
+ mBuffer = oldBuffer;
ALOGE("%s: Can't allocate larger metadata buffer", __FUNCTION__);
return NO_MEMORY;
}