[FFmpeg-cvslog] avutil/encryption_info: Don't pass NULL to memcpy
Andreas Rheinhardt
git at videolan.org
Wed May 20 08:38:33 EEST 2020
ffmpeg | branch: release/4.2 | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Wed Sep 18 02:03:58 2019 +0200| [53a622422719179dc6154926039c8b2c14a27656] | committer: Andreas Rheinhardt
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: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
Reviewed-by: Tomas Härdin <tjoppen at acc.umu.se>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
(cherry picked from commit e6018fda14d7cfe2c890fb336c9264c4ea0b6c5c)
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=53a622422719179dc6154926039c8b2c14a27656
---
libavutil/encryption_info.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/libavutil/encryption_info.c b/libavutil/encryption_info.c
index 812c704776..dd3fa71a44 100644
--- a/libavutil/encryption_info.c
+++ b/libavutil/encryption_info.c
@@ -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;
More information about the ffmpeg-cvslog
mailing list