RE: [RESEND] seg fault with Apache::URI ... weird

2001-02-20 Thread Geoffrey Young



 -Original Message-
 From: Jeffrey W. Baker [mailto:[EMAIL PROTECTED]]
 Sent: Thursday, February 08, 2001 4:47 PM
 To: Nick Tonkin
 Cc: [EMAIL PROTECTED]
 Subject: Re: [RESEND] seg fault with Apache::URI ... weird
 
 
[snip]

just to put everyone on the same page, looks like this is now fixed in
1.3.19-dev?

--Geoff
 
 I've debugged the problem, but have no solution:
 
  my $uri = Apache::URI-parse($r, $r-uri);
 
 This calls ap_parse_uri_components(), which is responsible for setting
 the scheme, hostname, user, password, port, path, etc.  But, 
 the scheme is
 not getting set, because the request line only contains 
 "/path" or such.
 
  $uri-hostname($r-get_server_name);
  $uri-port($r-get_server_port);
 
 These work fine.
 
  print $uri-unparse;
 
 This calls ap_unparse_uri_components().  If there is a hostname but no
 scheme, ap_unparse_uri_components() will pass a null argument to
 strcasecmp, which will cause an invalid memory access and 
 SIGSEGV.  You
 can work around the problem by including 
 $uri-scheme('http'); with the
 other accessor methods.  In the long run this is probably a 
 bug in Apache.
 
 If you read src/main/util_uri.c in Apache, you can see why 
 commenting out
 one accessor avoids the crash.
 
 Regards,
 Jeffrey Baker
 



Re: [RESEND] seg fault with Apache::URI ... weird

2001-02-11 Thread Ask Bjoern Hansen

On Fri, 9 Feb 2001, Jeffrey W. Baker wrote:

[...] 
 Actually, I didn't.  Does this mean that strcasecmp(3) on FreeBSD doesn't
 segfault when given NULL pointers?  Or does this mean that the version of
 Apache at the time (1.3.6 and 1.3.9) didn't have this problem?  The code
 in Apache hasn't changed since then, so I assume a difference between BSD
 and Linux libc.

Seems like it. We still use your code[1] on 4.2-STABLE with recent
Apache+mod_perl and haven't had any problems while upgrading.

so the conclusion: LINUX SUCKS![2]

;-)


 - ask

[1] except $uri-port($r-get_server_port) is now $uri-port(80).
[2] I do use Linux here and there, even RedHat (6.x though), so
let's not start a long thread about which OS sucks less.

-- 
ask bjoern hansen - http://ask.netcetera.dk/




Re: [RESEND] seg fault with Apache::URI ... weird

2001-02-09 Thread Nick Tonkin


Hi Jeff,

Thanks for your feedback.

On Thu, 8 Feb 2001, Jeffrey W. Baker wrote:

 On Thu, 8 Feb 2001, Nick Tonkin wrote:
 
 
  Hi all,
 
  No response on this so here it is again, any clues appreciated:
 
  I am encountering a weird problem with Apache::URI ... consider, please,
  this test handler:
 
 [ ... ]
 
  This code has worked fine for two years or more on my FreeBSD boxes; this
  is on Linux RedHat 7 ... dunno if that makes a difference.
 
 It doesn't make a difference.  Segfaults for me on Slackware-current, too.
 However, I would suggest avoinding RH 7.0 and its buggy compiler!

Jeez, I have had nothin but headaches with RedHat. I have always used
FreeBSD but it didn't know about the SCSI disks on the customer's HP
NetServer ... maybe I'll try again with Suse or Slackware before I get too
far along.


 
 I've debugged the problem, but have no solution:

Thanks for getting in where my hands fear to get dirty ... :)

 
  my $uri = Apache::URI-parse($r, $r-uri);
 
 This calls ap_parse_uri_components(), which is responsible for setting
 the scheme, hostname, user, password, port, path, etc.  But, the scheme is
 not getting set, because the request line only contains "/path" or such.
 
  $uri-hostname($r-get_server_name);
  $uri-port($r-get_server_port);
 
 These work fine.
 
  print $uri-unparse;
 
 This calls ap_unparse_uri_components().  If there is a hostname but no
 scheme, ap_unparse_uri_components() will pass a null argument to
 strcasecmp, which will cause an invalid memory access and SIGSEGV.  You
 can work around the problem by including $uri-scheme('http'); with the
 other accessor methods.  In the long run this is probably a bug in Apache.
 
 If you read src/main/util_uri.c in Apache, you can see why commenting out
 one accessor avoids the crash.
 
 Regards,
 Jeffrey Baker

I wonder if you noticed that this code was from the Auth/Access stuff
you did for me a while back ... so I'll patch mine but you might want to
take a look at the places you are using it ...

Thanks again,

Nick




Re: [RESEND] seg fault with Apache::URI ... weird

2001-02-09 Thread Jeffrey W. Baker

On Fri, 9 Feb 2001, Nick Tonkin wrote:


 Hi Jeff,

 Thanks for your feedback.

 I wonder if you noticed that this code was from the Auth/Access stuff
 you did for me a while back ... so I'll patch mine but you might want to
 take a look at the places you are using it ...

Actually, I didn't.  Does this mean that strcasecmp(3) on FreeBSD doesn't
segfault when given NULL pointers?  Or does this mean that the version of
Apache at the time (1.3.6 and 1.3.9) didn't have this problem?  The code
in Apache hasn't changed since then, so I assume a difference between BSD
and Linux libc.

Cheers,
Jeffrey




Re: [RESEND] seg fault with Apache::URI ... weird

2001-02-09 Thread Nick Tonkin

On Fri, 9 Feb 2001, Jeffrey W. Baker wrote:

 On Fri, 9 Feb 2001, Nick Tonkin wrote:
 
 
  Hi Jeff,
 
  Thanks for your feedback.
 
  I wonder if you noticed that this code was from the Auth/Access stuff
  you did for me a while back ... so I'll patch mine but you might want to
  take a look at the places you are using it ...
 
 Actually, I didn't.  Does this mean that strcasecmp(3) on FreeBSD doesn't
 segfault when given NULL pointers?  Or does this mean that the version of
 Apache at the time (1.3.6 and 1.3.9) didn't have this problem?  The code
 in Apache hasn't changed since then, so I assume a difference between BSD
 and Linux libc.

Yikes. I'm JAPH -- this (behavior of OS functions on different Unices) is
out of my purview, I'm afraid. However, it is true that the identical code
has worked on FreeBSD with Apache 1.3.[9-current or so] for at least a
year without problems.

HTH,

Nick




Re: [RESEND] seg fault with Apache::URI ... weird

2001-02-08 Thread G.W. Haywood

Hi there,

On Thu, 8 Feb 2001, Nick Tonkin wrote:

 No response on this so here it is again, any clues appreciated:
 This code has worked fine for two years or more on my FreeBSD boxes; this
 is on Linux RedHat 7 ... dunno if that makes a difference.
[snip]

 config_args=''

This seems strange.

 cc='gcc', optimize='-O2', gccversion=2.96 2731 (Red Hat Linux 7.0)

And wasn't there a problem with the compiler on RH7?
I think there's something in the List archies.

73,
Ged.