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)
  
  
  

Reply via email to