On 9/26/11 2:38 AM, Justin Ruggles wrote:
On 09/25/2011 06:58 PM, Luca Barbato wrote:
On 9/25/11 11:03 PM, Justin Ruggles wrote:
This also prevents NULL packets from being sent to the decoder unless
CODEC_CAP_DELAY is set.
---
libavcodec/utils.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 8459e5f..85c9d76 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -747,6 +747,11 @@ int attribute_align_arg
avcodec_decode_audio3(AVCodecContext *avctx, int16_t *sa
avctx->pkt = avpkt;
+ if (!avpkt->data&& avpkt->size) {
+ av_log(avctx, AV_LOG_ERROR, "invalid packet: NULL data, size> 0\n");
+ return AVERROR(EINVAL);
+ }
+
if((avctx->codec->capabilities& CODEC_CAP_DELAY) || avpkt->size){
//FIXME remove the check below _after_ ensuring that all audio check
that the available space is enough
if(*frame_size_ptr< AVCODEC_MAX_AUDIO_FRAME_SIZE){
Seems ok as patch, I'm wondering about the reference to CODEC_CAP_DELAY
though.
I basically added that because the documentation for CODEC_CAP_DELAY
says that the codec is guaranteed not to get a NULL packet unless that
capability is set, but that isn't true without preventing this case.
But like Mans pointed out, there is no valid reason the user should ever
send packets like that in the first place...
Exactly =)
Please reword as
avc: reject packets with NULL data and non zero size
And paste this explanation as body ^^
lu
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel