Loading lib/dict.c +1 −1 Original line number Diff line number Diff line Loading @@ -233,7 +233,7 @@ CURLcode dict(struct connectdata *conn) int i; ppath++; for (i = 0; (i < URL_MAX_LENGTH) && (ppath[i]); i++) { for (i = 0; ppath[i]; i++) { if (ppath[i] == ':') ppath[i] = ' '; } Loading lib/http.c +1 −1 Original line number Diff line number Diff line Loading @@ -327,7 +327,7 @@ CURLcode http(struct connectdata *conn) } if ((data->bits.httpproxy) && !(conn->protocol&PROT_HTTPS)) { /* The path sent to the proxy is in fact the entire URL */ strncpy(ppath, data->url, URL_MAX_LENGTH-1); ppath = data->url; } if(data->bits.http_formpost) { /* we must build the whole darned post sequence first, so that we have Loading lib/url.c +21 −3 Original line number Diff line number Diff line Loading @@ -677,6 +677,9 @@ CURLcode curl_disconnect(CURLconnect *c_connect) if(conn->hostent_buf) /* host name info */ free(conn->hostent_buf); if(conn->path) /* the URL path part */ free(conn->path); free(conn); /* free the connection oriented data */ /* clean up the sockets and SSL stuff from the previous "round" */ Loading @@ -696,6 +699,7 @@ static CURLcode _connect(CURL *curl, CURLconnect **in_connect) #ifdef HAVE_SIGACTION struct sigaction sigact; #endif int urllen; if(!data || (data->handle != STRUCT_OPEN)) return CURLE_BAD_FUNCTION_ARGUMENT; /* TBD: make error codes */ Loading Loading @@ -734,13 +738,25 @@ static CURLcode _connect(CURL *curl, CURLconnect **in_connect) #endif /* We need to allocate memory to store the path in. We get the size of the full URL to be sure, and we need to make it at least 256 bytes since other parts of the code will rely on this fact */ #define LEAST_PATH_ALLOC 256 urllen=strlen(data->url); if(urllen < LEAST_PATH_ALLOC) urllen=LEAST_PATH_ALLOC; conn->path=(char *)malloc(urllen); if(NULL == conn->path) return CURLE_OUT_OF_MEMORY; /* really bad error */ /* Parse <url> */ /* We need to parse the url, even when using the proxy, because * we will need the hostname and port in case we are trying * to SSL connect through the proxy -- and we don't know if we * will need to use SSL until we parse the url ... */ if((2 == sscanf(data->url, "%64[^:]://%" URL_MAX_LENGTH_TXT "[^\n]", if((2 == sscanf(data->url, "%64[^:]://%[^\n]", conn->proto, conn->path)) && strequal(conn->proto, "file")) { /* we deal with file://<host>/<path> differently since it Loading @@ -760,11 +776,11 @@ static CURLcode _connect(CURL *curl, CURLconnect **in_connect) strcpy(conn->path, "/"); if (2 > sscanf(data->url, "%64[^\n:]://%256[^\n/]%" URL_MAX_LENGTH_TXT "[^\n]", "%64[^\n:]://%256[^\n/]%[^\n]", conn->proto, conn->gname, conn->path)) { /* badly formatted, let's try the browser-style _without_ 'http://' */ if((1 > sscanf(data->url, "%256[^\n/]%" URL_MAX_LENGTH_TXT "[^\n]", if((1 > sscanf(data->url, "%256[^\n/]%[^\n]", conn->gname, conn->path)) ) { failf(data, "<url> malformed"); return CURLE_URL_MALFORMAT; Loading Loading @@ -1548,6 +1564,8 @@ CURLcode curl_connect(CURL *curl, CURLconnect **in_connect) in the connectdata struct, free those here */ conn = (struct connectdata *)*in_connect; if(conn) { if(conn->path) free(conn->path); if(conn->hostent_buf) free(conn->hostent_buf); free(conn); Loading lib/urldata.h +1 −1 Original line number Diff line number Diff line Loading @@ -175,7 +175,7 @@ struct connectdata { char proto[64]; char gname[256]; char *name; char path[URL_MAX_LENGTH]; char *path; /* formerly staticly this size: URL_MAX_LENGTH */ char *ppath; long bytecount; struct timeval now; Loading Loading
lib/dict.c +1 −1 Original line number Diff line number Diff line Loading @@ -233,7 +233,7 @@ CURLcode dict(struct connectdata *conn) int i; ppath++; for (i = 0; (i < URL_MAX_LENGTH) && (ppath[i]); i++) { for (i = 0; ppath[i]; i++) { if (ppath[i] == ':') ppath[i] = ' '; } Loading
lib/http.c +1 −1 Original line number Diff line number Diff line Loading @@ -327,7 +327,7 @@ CURLcode http(struct connectdata *conn) } if ((data->bits.httpproxy) && !(conn->protocol&PROT_HTTPS)) { /* The path sent to the proxy is in fact the entire URL */ strncpy(ppath, data->url, URL_MAX_LENGTH-1); ppath = data->url; } if(data->bits.http_formpost) { /* we must build the whole darned post sequence first, so that we have Loading
lib/url.c +21 −3 Original line number Diff line number Diff line Loading @@ -677,6 +677,9 @@ CURLcode curl_disconnect(CURLconnect *c_connect) if(conn->hostent_buf) /* host name info */ free(conn->hostent_buf); if(conn->path) /* the URL path part */ free(conn->path); free(conn); /* free the connection oriented data */ /* clean up the sockets and SSL stuff from the previous "round" */ Loading @@ -696,6 +699,7 @@ static CURLcode _connect(CURL *curl, CURLconnect **in_connect) #ifdef HAVE_SIGACTION struct sigaction sigact; #endif int urllen; if(!data || (data->handle != STRUCT_OPEN)) return CURLE_BAD_FUNCTION_ARGUMENT; /* TBD: make error codes */ Loading Loading @@ -734,13 +738,25 @@ static CURLcode _connect(CURL *curl, CURLconnect **in_connect) #endif /* We need to allocate memory to store the path in. We get the size of the full URL to be sure, and we need to make it at least 256 bytes since other parts of the code will rely on this fact */ #define LEAST_PATH_ALLOC 256 urllen=strlen(data->url); if(urllen < LEAST_PATH_ALLOC) urllen=LEAST_PATH_ALLOC; conn->path=(char *)malloc(urllen); if(NULL == conn->path) return CURLE_OUT_OF_MEMORY; /* really bad error */ /* Parse <url> */ /* We need to parse the url, even when using the proxy, because * we will need the hostname and port in case we are trying * to SSL connect through the proxy -- and we don't know if we * will need to use SSL until we parse the url ... */ if((2 == sscanf(data->url, "%64[^:]://%" URL_MAX_LENGTH_TXT "[^\n]", if((2 == sscanf(data->url, "%64[^:]://%[^\n]", conn->proto, conn->path)) && strequal(conn->proto, "file")) { /* we deal with file://<host>/<path> differently since it Loading @@ -760,11 +776,11 @@ static CURLcode _connect(CURL *curl, CURLconnect **in_connect) strcpy(conn->path, "/"); if (2 > sscanf(data->url, "%64[^\n:]://%256[^\n/]%" URL_MAX_LENGTH_TXT "[^\n]", "%64[^\n:]://%256[^\n/]%[^\n]", conn->proto, conn->gname, conn->path)) { /* badly formatted, let's try the browser-style _without_ 'http://' */ if((1 > sscanf(data->url, "%256[^\n/]%" URL_MAX_LENGTH_TXT "[^\n]", if((1 > sscanf(data->url, "%256[^\n/]%[^\n]", conn->gname, conn->path)) ) { failf(data, "<url> malformed"); return CURLE_URL_MALFORMAT; Loading Loading @@ -1548,6 +1564,8 @@ CURLcode curl_connect(CURL *curl, CURLconnect **in_connect) in the connectdata struct, free those here */ conn = (struct connectdata *)*in_connect; if(conn) { if(conn->path) free(conn->path); if(conn->hostent_buf) free(conn->hostent_buf); free(conn); Loading
lib/urldata.h +1 −1 Original line number Diff line number Diff line Loading @@ -175,7 +175,7 @@ struct connectdata { char proto[64]; char gname[256]; char *name; char path[URL_MAX_LENGTH]; char *path; /* formerly staticly this size: URL_MAX_LENGTH */ char *ppath; long bytecount; struct timeval now; Loading