Snap for 8531162 from 05e451a7f6db2c983f795d9ee14fac306c91ba79 to android12L-tests-release

Change-Id: I416a71ab2293b15446b5974e74380fc842cba86a
diff --git a/gralloc4/src/mali_gralloc_buffer.h b/gralloc4/src/mali_gralloc_buffer.h
index a00234d..a163d1a 100644
--- a/gralloc4/src/mali_gralloc_buffer.h
+++ b/gralloc4/src/mali_gralloc_buffer.h
@@ -119,6 +119,13 @@
 #ifdef __cplusplus
 struct private_handle_t : public native_handle
 {
+private:
+	/* Having a default constructor makes sure that we zero out the padding
+	 * which prevents data leak. */
+	private_handle_t() = default;
+
+public:
+
 #else
 struct private_handle_t
 {
@@ -246,19 +253,20 @@
 		int _req_format, uint64_t _alloc_format,
 		int _width, int _height, int _stride,
 		uint64_t _layer_count, plane_info_t _plane_info[MAX_PLANES])
-	    : flags(_flags)
-	    , fd_count(_fd_count)
-	    , width(_width)
-	    , height(_height)
-	    , req_format(_req_format)
-	    , producer_usage(_producer_usage)
-	    , consumer_usage(_consumer_usage)
-	    , stride(_stride)
-	    , alloc_format(_alloc_format)
-	    , layer_count(_layer_count)
-	    , allocating_pid(getpid())
-	    , ref_count(1)
+	    : private_handle_t()
 	{
+		flags = _flags;
+		fd_count = _fd_count;
+		width = _width;
+		height = _height;
+		req_format = _req_format;
+		producer_usage = _producer_usage;
+		consumer_usage = _consumer_usage;
+		stride = _stride;
+		alloc_format = _alloc_format;
+		layer_count = _layer_count;
+		allocating_pid = getpid();
+		ref_count = 1;
 		version = sizeof(native_handle);
 		set_numfds(fd_count);
 		memcpy(plane_info, _plane_info, sizeof(plane_info_t) * MAX_PLANES);