[mpp_packet] malloc packet more size then real need avoid 32bit read crash

git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@966 6e48237b-75ef-9749-8fc9-41990f28c85a
This commit is contained in:
ChenSiyong
2016-06-30 01:59:44 +00:00
parent 3505440a68
commit 12e12ae0f2

View File

@@ -118,7 +118,11 @@ MPP_RET mpp_packet_copy_init(MppPacket *packet, const MppPacket src)
}
size_t size = mpp_packet_get_size(src);
void *data = mpp_malloc_size(void, size);
/*
* due to parser may be read 32 bit interface so we must alloc more size then real size
* to avoid read carsh
*/
void *data = mpp_malloc_size(void, size + 256);
if (NULL == data) {
mpp_err_f("malloc failed, size %d\n", size);
mpp_packet_deinit(&pkt);
@@ -132,6 +136,10 @@ MPP_RET mpp_packet_copy_init(MppPacket *packet, const MppPacket src)
p->flag |= MPP_PACKET_FLAG_INTERNAL;
if (size) {
memcpy(data, src_impl->data, size);
/*
* clean more alloc byte to zero
*/
memset((RK_U8*)data + size, 0, 256);
}
*packet = pkt;
return MPP_OK;