diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-07-08 11:25:30 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-07-08 11:25:30 -0400 |
commit | 66f35e30dcea03c631a293e2341771277543b4ae (patch) | |
tree | 3ef05986a53e708e401e3f4af30d0e4a5da9140a | |
parent | 5ccd0cb518f663872c93dc376f756bf71996034d (diff) |
another try at dealing with CGI.pm problem
open the temp file if all attempts to get a fd fail
-rw-r--r-- | IkiWiki/Plugin/attachment.pm | 8 | ||||
-rw-r--r-- | doc/bugs/attachment:_failed_to_get_filehandle.mdwn | 9 |
2 files changed, 16 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/attachment.pm b/IkiWiki/Plugin/attachment.pm index f4f64b46a..ed1cd61fe 100644 --- a/IkiWiki/Plugin/attachment.pm +++ b/IkiWiki/Plugin/attachment.pm @@ -88,6 +88,10 @@ sub formbuilder (@) { #{{{ # of the temp file that CGI writes the upload to. my $tempfile=$q->tmpFileName($filename); + if (! defined $tempfile) { + error("failed to determine temp filename"); + } + $filename=IkiWiki::titlepage( IkiWiki::possibly_foolish_untaint( attachment_location($form->field('page')). @@ -136,7 +140,9 @@ sub formbuilder (@) { #{{{ # needed by old CGI versions $fh=$q->param('attachment'); if (! defined $fh || ! ref $fh) { - error("failed to get filehandle"); + # even that doesn't always work, + # fall back to opening the tempfile + open($fh, "<", $tempfile) || error("failed to open $tempfile: $!"); } } binmode($fh); diff --git a/doc/bugs/attachment:_failed_to_get_filehandle.mdwn b/doc/bugs/attachment:_failed_to_get_filehandle.mdwn index e5d4756fc..906d01e24 100644 --- a/doc/bugs/attachment:_failed_to_get_filehandle.mdwn +++ b/doc/bugs/attachment:_failed_to_get_filehandle.mdwn @@ -54,6 +54,15 @@ the error message like below: >>>>>> --[[Paweł|ptecza]] +>>>>>>> Well then, your CGI.pm is somehow not behaving as its documentation +>>>>>>> describes, in two ways: +>>>>>>> 1. `upload()` is not returning a reference to the filehandle +>>>>>>> 2. The filename returned by `param("attachment")` is not also +>>>>>>> a file handle. +>>>>>>> That seems very broken. I can try to work around it some more +>>>>>>> though. I've checked in a second try at dealing with things, can +>>>>>>> you try it? --[[Joey]] + The same message I can see in the Apache log file. There is also following warning: |