Commit e6018fda authored by Andreas Rheinhardt's avatar Andreas Rheinhardt Committed by Michael Niedermayer

avutil/encryption_info: Don't pass NULL to memcpy

The pointer arguments to memcpy (and several other functions of the
C standard library) are not allowed to be NULL, not even when the number
of bytes to copy is zero. An AVEncryptionInitInfo's data pointer is
explicitly allowed to be NULL and yet av_encryption_init_info_add_side_data
unconditionally used it as a source pointer to copy from. This commit changes
this so that copying is only done if the number of bytes to copy is > 0.

Fixes ticket #8141 as well as a part of ticket #8150.
Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Reviewed-by: 's avatarTomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 87a7fc69
......@@ -331,8 +331,10 @@ uint8_t *av_encryption_init_info_add_side_data(const AVEncryptionInitInfo *info,
memcpy(cur_buffer, cur_info->key_ids[i], cur_info->key_id_size);
cur_buffer += cur_info->key_id_size;
}
memcpy(cur_buffer, cur_info->data, cur_info->data_size);
cur_buffer += cur_info->data_size;
if (cur_info->data_size > 0) {
memcpy(cur_buffer, cur_info->data, cur_info->data_size);
cur_buffer += cur_info->data_size;
}
}
return buffer;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment