joes 2003/01/05 12:02:31
Modified: . Changes
Request Request.xs
Log:
Added Sven Geisler's tests for extraneous NULL pointers (partial fix for 5.8
segfaults in Request.xs's upload->fh glue).
Revision Changes Path
1.44 +1 -1 httpd-apreq/Changes
Index: Changes
===================================================================
RCS file: /home/cvs/httpd-apreq/Changes,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- Changes 5 Jan 2003 13:25:54 -0000 1.43
+++ Changes 5 Jan 2003 20:02:31 -0000 1.44
@@ -6,7 +6,7 @@
Include patch and supporting documentation for OS X [David Wheeler].
Temporarily revert test suite to Apache::test. [Joe Schaefer]
-Updated Request.xs to avoid some segfaults in perl 5.8 (partial fix).
+Update Request.xs to avoid some segfaults in perl 5.8 [Sven Geisler].
=item 1.04 - November 5, 2002
1.30 +11 -3 httpd-apreq/Request/Request.xs
Index: Request.xs
===================================================================
RCS file: /home/cvs/httpd-apreq/Request/Request.xs,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- Request.xs 3 Nov 2002 20:58:09 -0000 1.29
+++ Request.xs 5 Jan 2003 20:02:31 -0000 1.30
@@ -465,12 +465,14 @@
if (name) {
uptr = ApacheUpload_find(req->upload, name);
- if (!uptr)
- XSRETURN_UNDEF;
}
else {
uptr = req->upload;
}
+
+ if (!uptr)
+ XSRETURN_UNDEF;
+
upload_push(uptr);
}
else {
@@ -497,13 +499,19 @@
CODE:
fd = PerlLIO_dup(fileno(ApacheUpload_fh(upload)));
+ /* XXX: user should check errno on undef returns */
+
+ if (fd < 0)
+ XSRETURN_UNDEF;
+
if ( !(RETVAL = PerlIO_fdopen(fd, "r")) )
- XSRETURN_UNDEF;
+ XSRETURN_UNDEF;
OUTPUT:
RETVAL
CLEANUP:
+ /* XXX: there may be a leak/segfault in here somewhere */
if (ST(0) != &PL_sv_undef) {
IO *io = GvIOn((GV*)SvRV(ST(0)));
if (upload->req->parsed)