[FFmpeg-cvslog] swresample: check for invalid sample formats.

Michael Niedermayer git at videolan.org
Sat Oct 1 01:51:46 CEST 2011


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Oct  1 01:39:17 2011 +0200| [834b3760a7ca112573e813bd6c3573a8c0daf4ed] | committer: Michael Niedermayer

swresample: check for invalid sample formats.

Bug-Found-by: Justin Ruggles
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=834b3760a7ca112573e813bd6c3573a8c0daf4ed
---

 libswresample/swresample.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/libswresample/swresample.c b/libswresample/swresample.c
index 519cadf..7276c7a 100644
--- a/libswresample/swresample.c
+++ b/libswresample/swresample.c
@@ -144,7 +144,15 @@ int swr_init(SwrContext *s){
     s-> in_sample_fmt &= 0xFF;
     s->out_sample_fmt &= 0xFF;
 
-    //We assume AVOptions checked the various values and the defaults where allowed
+    if(s-> in_sample_fmt >= AV_SAMPLE_FMT_NB){
+        av_log(s, AV_LOG_ERROR, "Requested sample format %s is invalid\n", av_get_sample_fmt_name(s->in_sample_fmt));
+        return AVERROR(EINVAL);
+    }
+    if(s->out_sample_fmt >= AV_SAMPLE_FMT_NB){
+        av_log(s, AV_LOG_ERROR, "Requested sample format %s is invalid\n", av_get_sample_fmt_name(s->out_sample_fmt));
+        return AVERROR(EINVAL);
+    }
+
     if(   s->int_sample_fmt != AV_SAMPLE_FMT_S16
         &&s->int_sample_fmt != AV_SAMPLE_FMT_FLT){
         av_log(s, AV_LOG_ERROR, "Requested sample format %s is not supported internally, only float & S16 is supported\n", av_get_sample_fmt_name(s->int_sample_fmt));



More information about the ffmpeg-cvslog mailing list