[FFmpeg-cvslog] hls: add missing checks for accessing avoption fields

Michael Niedermayer git at videolan.org
Wed Jan 23 22:50:06 CET 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Wed Jan 23 22:21:51 2013 +0100| [665f2d432ccdfef91d4b3fa640582160076b18eb] | committer: Michael Niedermayer

hls: add missing checks for accessing avoption fields

Fixes null pointer exception and probably other things

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavformat/hls.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/libavformat/hls.c b/libavformat/hls.c
index 8e46c2b..1512122 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -482,17 +482,17 @@ static int hls_read_header(AVFormatContext *s)
     c->interrupt_callback = &s->interrupt_callback;
 
     // if the URL context is good, read important options we must broker later
-    if (u) {
+    if (u && u->prot->priv_data_class) {
         // get the previous user agent & set back to null if string size is zero
-        av_free(c->user_agent);
+        av_freep(&c->user_agent);
         av_opt_get(u->priv_data, "user-agent", 0, (uint8_t**)&(c->user_agent));
-        if (!strlen(c->user_agent))
+        if (c->user_agent && !strlen(c->user_agent))
             av_freep(&c->user_agent);
 
         // get the previous cookies & set back to null if string size is zero
-        av_free(c->cookies);
+        av_freep(&c->cookies);
         av_opt_get(u->priv_data, "cookies", 0, (uint8_t**)&(c->cookies));
-        if (!strlen(c->cookies))
+        if (c->cookies && !strlen(c->cookies))
             av_freep(&c->cookies);
     }
 



More information about the ffmpeg-cvslog mailing list