[peruser] Problem with mpm-peruser conf.d reading

cal at foxwhisper.co.uk cal at foxwhisper.co.uk
Fri Aug 14 03:34:08 MDT 2009


Hi again,

I've tracked the problem down to this piece of code which was added in the
dc2/dc3 patch:


+    int proc_temp = 0;
+    for(; current != NULL; current = current->next) {
+        directive = current->directive;
+
+        if (!strcasecmp(directive, "user")) {
+            user_name = current->args;
+        }
+        else if (!strcasecmp(directive, "group")) {
+           group_name = current->args;
+        }
+        else if (!strcasecmp(directive, "chroot")) {
+            senv.chroot = ap_getword_conf(cmd->pool, &current->args);
+        }
+        else if (!strcasecmp(directive, "nicelevel")) {
+           senv.nice_lvl = atoi(current->args);
+        }
+        else if (!strcasecmp(directive, "maxprocessors")) {
+            proc_temp = atoi(current->args);


It would appear the chroot isn't being correctly grabbed :o I've tried to
fix this myself 
but just hitting a brick wall - and my brain is cabbaged. So i'll look at
it another time.

<3

Original Message:
-----------------
From: cal at foxwhisper.co.uk cal at foxwhisper.co.uk
Date: Thu, 13 Aug 2009 20:59:22 -0400
To: peruser at telana.com
Subject: [peruser] Problem with mpm-peruser conf.d reading


Hi guys,

After 2 HOURS of debugging, it would appear I have finally traced down a
problem. Whenever 
you put your configuration in a conf.d file, mpm-peruser seems to have a
really bad bitch 
fit about it. It ends up reading in random lines from other conf.d files,
such as 
ports.conf :O I get stuff like:


[Fri Aug 14 01:01:30 2009] [alert] (2)No such file or directory: chdir:
unable to change 
to directory: Listen
[Fri Aug 14 01:27:38 2009] [alert] (2)No such file or directory: chdir:
unable to change 
to directory: Listen
[Fri Aug 14 01:28:23 2009] [alert] (2)No such file or directory: chdir:
unable to change 
to directory: Listen
[Fri Aug 14 01:37:28 2009] [warn] (peruser: pid=3192 uid=0 child=1)
peruser_setup_child(): 
chdir to Listen
[Fri Aug 14 01:37:28 2009] [alert] (2)No such file or directory: chdir:
unable to change 
to directory: Listen


:O

So, I moved the config from conf.d/peruser into apache2.conf, and it works
absolutely 
perfectly.. Now, considering the conf.d files are only includes for apache,
I would guess 
that this is something to do with the way mpm-peruser grabs its config
settings.

What ends up happening, is that it doesn't read its config properly, and as
such:

static const char *cf_Multiplexer(cmd_parms *cmd, void *dummy,
    const char *user_name, const char *group_name, const char *chroot)
{
senv.chroot     = chroot

That doesn't get set properly, thus the whole thing just screws up. Also -
if one 
environment has a problem, or if its child dies unexpectedly, then so do
all the others. 
Also - if you misconfigure the thing, it just seg faults lol.

I'm planning on fixing a whole bunch of these problems, or at least make it
not seg fault 
and give usable error messages lol, then submit as a patch and pray/hope
the maintainer 
merges them into the trunk :)

Hopefully this will be helpful to anyone who has had similar issues!

Regards

Cal Leeming
aka foxx

--------------------------------------------------------------------
myhosting.com - Premium Microsoft® Windows® and Linux web and application
hosting - http://link.myhosting.com/myhosting


_______________________________________________
Peruser mailing list
Peruser at telana.com
http://www.telana.com/mailman/listinfo/peruser


--------------------------------------------------------------------
myhosting.com - Premium Microsoft® Windows® and Linux web and application
hosting - http://link.myhosting.com/myhosting




--------------------------------------------------------------------
mail2web.com – Enhanced email for the mobile individual based on Microsoft®
Exchange - http://link.mail2web.com/Personal/EnhancedEmail




More information about the Peruser mailing list