----- Original Message ----- 
From: "Shane Chrisp" <[EMAIL PROTECTED]>
>

> <[EMAIL PROTECTED]>:
> r_chown() : Failed to cd to directory
> BBopmail/domains/cwispy.com/testMessage rejected. Not enough storage
> space in user's mailbox to accept message.
> can not open new email file errno=2
>
file=BBopmail/domains/cwispy.com/test/Maildir/tmp/1073475995.7781.garf
> ield.2000cn.com.au,S=556

I took a look at this. There are only a couple of places where that
"r_chown() : Failed to cd to directory" error could come from.

One of them is the make_user_dir() function, which sounds like
a likely cantidate. This function is called by vdelivermail() when
a message arrives for a user that doesnt yet have a dir allocated.

Doing a diff of 5.3.27 (which reportedly works ok) against
the current 5.4.0-pre1, I can see that this make_user_dir() function has
had some changes. So I guess a bug has snuck in there somewhere...
Changelog shows the work was done for the 5.3.29 release.

I think it is something to do with the line :

    r_chown(".", uid, gid);

All other references to this r_chown() function use a full path,
this is the the only spot where a "." is used as a path. I wonder
if that makes a difference at all?

Probably the r_chown() call above should test for a return code,
and then print error / return on failure.

Also inside r_chown(), the very first line is
    chown(path,owner,group);
which should also probably check for a return code, and
then print error / return on failure.

Even after doing this digging though, I still can't really explain where
that corrupted data is coming from. I was looking around for an
uninitialised buffer or somesuch, but couldn't really spot the source.

Shane, perhaps you could step through the versions between
5.3.27 and 5.4.0-rc1 one at a time, until you find the version
that causes the problem? This is assist us in tracking down the bug.

Michael.

Reply via email to