Remove check for @ in tcp.c which removes the authorization data from the
actual hostname. This functionality already exists (and always existed) in url_split() and is therefore useless. See discussion in "[PATCH] tcp.c/udp.c memleak?" thread on ffmpeg-devel. Originally committed as revision 14946 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		@@ -38,7 +38,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
 | 
				
			|||||||
    int fd_max, ret;
 | 
					    int fd_max, ret;
 | 
				
			||||||
    struct timeval tv;
 | 
					    struct timeval tv;
 | 
				
			||||||
    socklen_t optlen;
 | 
					    socklen_t optlen;
 | 
				
			||||||
    char hostname[1024],proto[1024],path[1024],tmp[1024],*q;
 | 
					    char hostname[1024],proto[1024],path[1024];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(!ff_network_init())
 | 
					    if(!ff_network_init())
 | 
				
			||||||
        return AVERROR(EIO);
 | 
					        return AVERROR(EIO);
 | 
				
			||||||
@@ -47,7 +47,6 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
 | 
				
			|||||||
        &port, path, sizeof(path), uri);
 | 
					        &port, path, sizeof(path), uri);
 | 
				
			||||||
    if (strcmp(proto,"tcp") || port <= 0 || port >= 65536)
 | 
					    if (strcmp(proto,"tcp") || port <= 0 || port >= 65536)
 | 
				
			||||||
        return AVERROR(EINVAL);
 | 
					        return AVERROR(EINVAL);
 | 
				
			||||||
    if ((q = strchr(hostname,'@'))) { strcpy(tmp,q+1); strcpy(hostname,tmp); }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    dest_addr.sin_family = AF_INET;
 | 
					    dest_addr.sin_family = AF_INET;
 | 
				
			||||||
    dest_addr.sin_port = htons(port);
 | 
					    dest_addr.sin_port = htons(port);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user