summaryrefslogtreecommitdiff
path: root/libavformat/http.c
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2014-03-21 18:51:30 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-03-21 20:32:09 +0100
commit76c8fbc5f22c4a93c08030b10e5dbbd4e0c4dd68 (patch)
tree138ab2d977677b97399854a23b9a93d7797c1b2a /libavformat/http.c
parent2fd14f062cfc52db1529a46b53a26b06cb418f55 (diff)
http: never send 'Cookie: (null)' to the server
If a domain has some cookies set, but matching the cookie fails due to the port being different, get_cookies() succeeds, but sets cookies to NULL. The caller of get_cookies() didn't check for the NULL value. This also avoids passing NULL to libc string functions, which is undefined behavior Fixes Ticket2180 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/http.c')
-rw-r--r--libavformat/http.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/http.c b/libavformat/http.c
index 5e1c9abd89..aefc9fa245 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -746,7 +746,7 @@ static int http_connect(URLContext *h, const char *path, const char *local_path,
"Content-Type: %s\r\n", s->content_type);
if (!has_header(s->headers, "\r\nCookie: ") && s->cookies) {
char *cookies = NULL;
- if (!get_cookies(s, &cookies, path, hoststr)) {
+ if (!get_cookies(s, &cookies, path, hoststr) && cookies) {
len += av_strlcatf(headers + len, sizeof(headers) - len,
"Cookie: %s\r\n", cookies);
av_free(cookies);