Dinar in bug report #1086121, found a file handle leak when a multipart

formpost (including a file upload part) was aborted before the whole file was
sent.
This commit is contained in:
Daniel Stenberg 2004-12-16 09:52:36 +00:00
parent 38181fbc74
commit d3b414724b
4 changed files with 17 additions and 3 deletions

View File

@ -7,6 +7,11 @@
Changelog
Daniel (16 December 2004)
- Dinar in bug report #1086121, found a file handle leak when a multipart
formpost (including a file upload part) was aborted before the whole file
was sent.
Daniel (15 December 2004)
- Tom Lee found out that globbing of strings with backslashes didn't work as
you'd expect. Backslashes are such a central part of windows file names that

View File

@ -26,6 +26,7 @@ This release includes the following changes:
This release includes the following bugfixes:
o file handle leak in aborted multipart formpost file upload
o -T upload multiple files with backslashes in file names
o modified credentials between two requests on a persistent http connection
o large file file:// resumes on Windows
@ -71,6 +72,6 @@ advice from friends like these:
Tim Sneddon, Ian Gulliver, Jean-Philippe Barrette-LaPierre, Jeff Phillips,
Wojciech Zwiefka, David Phillips, Reinout van Schouwen, Maurice Barnum,
Richard Atterer, Rene Bernhardt, Matt Veenstra, Bryan Henderson, Ton Voon,
Kai Sommerfeld, David Byron, Harshal Pradhan, Tom Lee
Kai Sommerfeld, David Byron, Harshal Pradhan, Tom Lee, Dinar
Thanks! (and sorry if I forgot to mention someone)

View File

@ -1299,6 +1299,9 @@ CURLcode Curl_http_done(struct connectdata *conn,
conn->bytecount = http->readbytecount + http->writebytecount;
Curl_formclean(http->sendit); /* Now free that whole lot */
if(http->form.fp)
/* a file being uploaded was left opened, close it! */
fclose(http->form.fp);
}
else if(HTTPREQ_PUT == data->set.httpreq)
conn->bytecount = http->readbytecount + http->writebytecount;

View File

@ -357,10 +357,15 @@ sub runhttpserver {
my $data;
if($res && $verbose) {
print "RUN: curl command returned $res\nRUN: ";
open(ERR, "<log/verifystderr");
print <ERR>;
my @e = <ERR>;
close(ERR);
print "RUN: curl command returned $res\n";
for(@e) {
if($_ !~ /^([ \t]*)$/) {
print "RUN: $_";
}
}
}
open(FILE, "<log/verifiedserver");
my @file=<FILE>;