out that doing first a file:// upload and then an FTP upload crashed libcurl
or at best caused furious valgrind complaints. Fixed now by making sure we
free and clear the file-specific struct properly when done with it.
This commit is contained in:
Daniel Stenberg 2007-08-22 22:48:41 +00:00
parent d38891c950
commit 91fd2c3bcd
3 changed files with 12 additions and 3 deletions

View file

@ -96,7 +96,8 @@
*/
CURLcode Curl_file_connect(struct connectdata *conn)
{
char *real_path = curl_easy_unescape(conn->data, conn->data->reqdata.path, 0, NULL);
char *real_path = curl_easy_unescape(conn->data, conn->data->reqdata.path, 0,
NULL);
struct FILEPROTO *file;
int fd;
#if defined(WIN32) || defined(MSDOS) || defined(__EMX__)
@ -113,9 +114,8 @@ CURLcode Curl_file_connect(struct connectdata *conn)
return CURLE_OUT_OF_MEMORY;
}
if (conn->data->reqdata.proto.file) {
if (conn->data->reqdata.proto.file)
free(conn->data->reqdata.proto.file);
}
conn->data->reqdata.proto.file = file;
@ -177,6 +177,9 @@ CURLcode Curl_file_done(struct connectdata *conn,
if(file->fd != -1)
close(file->fd);
free(file);
conn->data->reqdata.proto.file= NULL; /* clear it! */
return CURLE_OK;
}