aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/http.c
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2018-03-08 04:47:40 +0100
committerwm4 <nfxjfg@googlemail.com>2018-03-18 12:36:24 +0100
commitc0687acbf6094053834af6a20e9d71b455842c8c (patch)
treecbb1929fa71ff08beee62cfd617fd0574bfd83e3 /libavformat/http.c
parent39c1d170a3474a06f4805589d642f605f7ef1436 (diff)
downloadffmpeg-c0687acbf6094053834af6a20e9d71b455842c8c.tar.gz
http: avoid out of bound accesses on broken Set-Cookie headers
It's trivial to craft a HTTP response that will make the code for skipping trailing whitespace access and possibly overwrite bytes outside of the memory allocation. Why this can happen is blindingly obvious: it accesses cstr[strlen(cstr)-1] without checking whether the string is empty.
Diffstat (limited to 'libavformat/http.c')
-rw-r--r--libavformat/http.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libavformat/http.c b/libavformat/http.c
index d7a72e7129..59f90ac603 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -750,6 +750,9 @@ static int parse_set_cookie(const char *set_cookie, AVDictionary **dict)
{
char *param, *next_param, *cstr, *back;
+ if (!set_cookie[0])
+ return 0;
+
if (!(cstr = av_strdup(set_cookie)))
return AVERROR(EINVAL);