Terrence Enger writes:
> 
> I notice that cvs in several places executes fchmod() or chmod(), and that
> in some cases the new mode argument is the mode returned from an earlier
> call to stat().  This value typically includes the file type.  
> 
> On most platforms this causes no problem, but OS/400 complains that "the
> value specified for the argument is not correct".  Indeed, the
> documentation of chmod() at
> http://www.opengroup.org/onlinepubs/007908799/xsh/chmod.html lists the bits
> which it can change and specifies that errno=EINVAL is a possible result,
> so I think that OS/400 is arguably correct.

Are you certain that it's the file type bits that are causing the
problem?  If so, I'd say that OS/400 is definitely *incorrect*.  The
above-referenced specification says that chmod sets the SUID, SGID,
sticky, and permission bits of the file to the "corresponding bits" in
the argument.  There is no requirement that non-corresponding bits of
the argument be set to any particular values.

> Does anybody forsee possible bad results from masking the mode argument
> down to the valid bits?  Would the "official" cvs be willing to accept a
> patch to this effect?

I can't see that it hurts anything, other than some people's
sensibilities.

> If this is a good idea, perhaps some expert can answer a couple of questions:
> (*)   Where should I define the valid bits?  Would anybody volunteer to help
> me with the configuration tools?  Would anybody be willing to take over
> that part of the work?

As per the above spec, the valid bits are precisely:

        (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO)

-Larry Jones

Nobody knows how to pamper like a Mom. -- Calvin


_______________________________________________
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs

Reply via email to