dougm       02/04/09 13:19:25

  Modified:    xs       typemap
  Log:
  override T_PTROBJ INPUT typemap to croak if object is not a blessed
  reference, to prevent possible segv from e.g. Apache::Server->process
  
  Revision  Changes    Path
  1.6       +11 -0     modperl-2.0/xs/typemap
  
  Index: typemap
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/typemap,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- typemap   25 Sep 2001 19:44:03 -0000      1.5
  +++ typemap   9 Apr 2002 20:19:25 -0000       1.6
  @@ -19,6 +19,17 @@
   
   ######################################################################
   INPUT
  +T_PTROBJ
  +     if (SvROK($arg) && sv_derived_from($arg, \"${ntype}\")) {
  +         IV tmp = SvIV((SV*)SvRV($arg));
  +         $var = INT2PTR($type,tmp);
  +     }
  +     else {
  +         Perl_croak(aTHX_ SvROK($arg) ?
  +                       \"$var is not of type ${ntype}\" :
  +                       \"$var is not a blessed reference\");
  +        }
  +
   T_APACHEOBJ
        $var = modperl_xs_sv2request_rec(aTHX_ $arg, \"$ntype\", cv)
       
  
  
  


Reply via email to