Merge "CameraMetadata: avoid memory leak in case allocate_camera_metadata fails." into sc-dev
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;
             }