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>
This commit is contained in:
		
							parent
							
								
									2fd14f062c
								
							
						
					
					
						commit
						76c8fbc5f2
					
				@ -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);
 | 
					                           "Content-Type: %s\r\n", s->content_type);
 | 
				
			||||||
    if (!has_header(s->headers, "\r\nCookie: ") && s->cookies) {
 | 
					    if (!has_header(s->headers, "\r\nCookie: ") && s->cookies) {
 | 
				
			||||||
        char *cookies = NULL;
 | 
					        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,
 | 
					            len += av_strlcatf(headers + len, sizeof(headers) - len,
 | 
				
			||||||
                               "Cookie: %s\r\n", cookies);
 | 
					                               "Cookie: %s\r\n", cookies);
 | 
				
			||||||
            av_free(cookies);
 | 
					            av_free(cookies);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user