[PATCH 6/6] mfplat: Do not allocate more memory than requested.
Giovanni Mascellani
gmascellani at codeweavers.com
Tue Mar 15 08:29:22 CDT 2022
It is totally fine (though maybe a little strange) to allocate 10 bytes
requesting an alignment to a megabyte boundary or more, and this
shouldn't result in wasting an (nearly) entire megabyte of memory.
Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
---
dlls/mfplat/buffer.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/dlls/mfplat/buffer.c b/dlls/mfplat/buffer.c
index 18c77c87ec2..8ea2283e24b 100644
--- a/dlls/mfplat/buffer.c
+++ b/dlls/mfplat/buffer.c
@@ -1262,8 +1262,6 @@ static const IMFDXGIBufferVtbl dxgi_buffer_vtbl =
static HRESULT memory_buffer_init(struct buffer *buffer, DWORD max_length, DWORD alignment,
const IMFMediaBufferVtbl *vtbl)
{
- size_t size;
-
if (alignment < MF_16_BYTE_ALIGNMENT)
alignment = MF_16_BYTE_ALIGNMENT;
alignment++;
@@ -1279,10 +1277,9 @@ static HRESULT memory_buffer_init(struct buffer *buffer, DWORD max_length, DWORD
alignment++;
}
- size = ALIGN_SIZE(max_length, alignment - 1);
- if (!(buffer->data = _aligned_malloc(size, alignment)))
+ if (!(buffer->data = _aligned_malloc(max_length, alignment)))
return E_OUTOFMEMORY;
- memset(buffer->data, 0, size);
+ memset(buffer->data, 0, max_length);
buffer->IMFMediaBuffer_iface.lpVtbl = vtbl;
buffer->refcount = 1;
--
2.35.1
More information about the wine-devel
mailing list