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;
             }