Re: Segmentation fault on form posting

Jim Schueler <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
Here's the code I mentioned in my last post.  It's included in my distro
NoSQL::PL2SQL

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"

#include "ppport.h"

SV* typeis ( SV* what ) ;

SV* typeis ( SV* what )
{
 	if ( SvIOK( what ) )
 		return newSVpvs( "integer" ) ;
 	else if ( SvNOK( what ) )
 		return newSVpvs( "double" ) ;
 	else if ( SvPOK( what ) )
 		return newSVpvs( "string" ) ;

 	return newSVpvs( "unknown" ) ;
}


MODULE = NoSQL::PL2SQL		PACKAGE = NoSQL::PL2SQL::Node

PROTOTYPES: ENABLE

SV* 
typeis( what )
 	SV* what



On Thu, 23 May 2013, Neil Bowers wrote:

> Hi,
> I've got a mod_perl handler which has been working fine for a long time, but
> just recently two people have managed to trigger a seg fault under specific
> circumstances.
>
>  *  They are POSTing form data
>  *  Only happens over https - doesn't happen via http (ie without SSL)
>  *  A certain combination of bytes in the form seems to trigger this.
>     Doesn't appear to be the *number* of bytes, but can't really be sure.
>  *  It only happens if the end-user is on 64-bit Windows (Win 7 only so
>     far), on IE9 or Chrome 26 (27 seems to be ok). Doesn't happen on Firefix
>     on 64bit, or on any browser on 32-bit Windows.
> 
> In my handler, if the first thing I do is print out the POST parameters,
> then the segfault doesn't happen. So it smells like some kind of memory
> overwrite.
> 
> This happens on combinations of:
>
>  *  CentOS 5.5 and 6.3
>  *  openssl 1.0.0d and 1.0.1e
>  *  Apache 2.2.22 and 2.2.24
>  *  Perl 5.12.3 and 5.16.3
>  *  mod_perl 2.0.5, 2.0.7 and 2.0.8
> 
> I'll probably try 5.18, though I don't expect any change with that.
> 
> So now, some questions:
>
>  *  Anyone seen anything like this, and have an idea where to look?
>  *  Any thoughts on where to look / what else to try?
>  *  What's the best approach to tracking this down? Valgrind?
> 
> I'm going to try attaching a debugger to an httpd process to see if I can
> see where it's dying, though I suspect the problem may be happening earlier.
> I'll have a go with valgrind after that.
> 
> Cheers,
> Neil
> 
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.