public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Rui Ribeiro <rui.ribeiro@case.pt>
To: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: [PATCH] Reproducible oops in 2.4.10, khttpd crashing when apache is not running ; corresponding HTTP error message
Date: Thu, 4 Oct 2001 14:59:01 +0100	[thread overview]
Message-ID: <01C14CE5.1AB536F0.rui.ribeiro@case.pt> (raw)

[-- Attachment #1: Type: text/plain, Size: 1773 bytes --]

 

Howdy,

First I would like to say hello to everyone in this list.

I'm running kernel 2.4.10 (Intel), and performing experiments with the 
khttpd server compiled as a module. I am writing to this list concerning a 
couple of things I noticed in khttpd, and offering a fix. I already sent this e-mail 
to the list, but not with a standard subject.
 
Problem description:
-----------------------------

I began noticing that it crashed with a  oops  or hanging the 
machine when apache was not running. When the machine survived, it also 
returned a 403 error,  with a "Permission denied" message.


The hack:
------------------

Upon source investigation, I noticed that at 
/usr/src/linux/net/khttpd/userspace.c, at the function Userspace, in the 
place where's the user-daemon no present case is coded, a structure element 
is not released.

After correction, I have also changed the 403 error (permission denied), to 
a 503 Service Unavailable, as I believe it's more correct. If the khttpd 
daemon can't call Apache (or other userspace daemon) when it's not capable 
of processing the request, it's better to give a 503 message than a 403, 
for  my and the users'  sanity sake.

So, in the  2.4.10 kernel source tree, in the already mentioned 
/usr/src/linux/net/khttpd/userspace.c, at line 114, you can make the 
following changes:

Send403(CurrentRequest->sock); to Send50x(CurrentRequest-sock);

Append the following lines after the Send50x:
sock_release(CurrentRequest->sock);
CurrentRequest->sock=NULL;


This patch has already been tested by another two persorns.

A diff file is included as an attachment.


Regards,
--
Rui Ribeiro
Network and Security consultant
http://www.case.pt


P.S. A copy of this message has already been sent to khttpd users list.

 

[-- Attachment #2: userspace.diff --]
[-- Type: application/octet-stream, Size: 326 bytes --]

101d100
< 
102a102
> 			
113,119c113,115
< 	
< /* Rui */
< 			Send50x(CurrentRequest->sock); /* Sorry, no go... */
< 			sock_release(CurrentRequest->sock);
< 			CurrentRequest->sock = NULL;	 /* We no longer own it */
< /* End Rui */
< 
---
> 			
> 			Send403(CurrentRequest->sock); /* Sorry, no go... */
> 			

                 reply	other threads:[~2001-10-04 14:06 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=01C14CE5.1AB536F0.rui.ribeiro@case.pt \
    --to=rui.ribeiro@case.pt \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox