OSDN Git Service

Fix false positive memory leak warning.
authorChih-Hung Hsieh <chh@google.com>
Fri, 12 Feb 2016 22:52:46 +0000 (14:52 -0800)
committerChih-Hung Hsieh <chh@google.com>
Fri, 12 Feb 2016 23:29:57 +0000 (15:29 -0800)
place_camera_metadata could return NULL only if buffer is NULL.

BUG: 27099839
Change-Id: I1f5c6c0b96e21d1b487a3c3bb0b550760d7ea5c6

camera/src/camera_metadata.c

index 1d9a9eb..d721552 100644 (file)
@@ -199,9 +199,15 @@ camera_metadata_t *allocate_camera_metadata(size_t entry_capacity,
     size_t memory_needed = calculate_camera_metadata_size(entry_capacity,
                                                           data_capacity);
     void *buffer = malloc(memory_needed);
-    return place_camera_metadata(buffer, memory_needed,
-                                 entry_capacity,
-                                 data_capacity);
+    camera_metadata_t *metadata = place_camera_metadata(
+        buffer, memory_needed, entry_capacity, data_capacity);
+    if (!metadata) {
+        /* This should not happen when memory_needed is the same
+         * calculated in this function and in place_camera_metadata.
+         */
+        free(buffer);
+    }
+    return metadata;
 }
 
 camera_metadata_t *place_camera_metadata(void *dst,