You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apreq-dev@httpd.apache.org by Stas Bekman <st...@stason.org> on 2003/01/01 23:28:04 UTC
Re: segfault in Apache::Upload::fh with libapreq 1.1rc2
Sven Geisler wrote:
> Hi,
>
> I use libapreq 1.1rc2 with self-compiled perl 5.8.0, mod_perl 1.27,
> apache 1.3.27:
>
> my Perl code:
>
> if ($r->method_number == Apache::Constants::M_POST) {
> foreach my $upload ($r->upload) {
> my $name = $upload->name;
> if (ref($upload->fh)) {
> # do something with upload
> ...
> }
> }
>
> # do more
> ...
> }
>
> I got this message in gdb:
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 8192 (LWP 25219)]
> 0x420693d7 in fileno_unlocked () from /lib/i686/libc.so.6
Thank you, Sven, for the diagnosis and patch, which should be certainly
fixed. But this shouldn't have happened in first place, $upload->fh
shouldn't be set if there is no file to upload. Any chance you can
supply a reproducable showcase which reproduces this segfault? Because
the problem with this patch:
fp = ApacheUpload_fh(upload);
if ( !fp )
XSRETURN_UNDEF;
is that the client code expects a file, and we return undef here.
__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com