This is the mail archive of the gas2@sourceware.cygnus.com mailing list for the gas2 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: strip looses original file ownership and file permissions


At 18:27 06.05.99 , Ian Lance Taylor wrote:
>    Date: Thu, 06 May 1999 13:44:47 +0200
>    From: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
>
>    >I just verified that strip out of gas-990418 looses original 
> ownership and
>    >permissions of a file.
>    >This is on glibc-2.1.1pre2, Linux-2.2.6 (PPC).
>    >
>    >Is this platform specific or does anybody else notice this?
>
>    After a quick browse through the source I came up with the following
>    untested patch. Does it look right?
>
>It doesn't look right to me.
>
>We need to rename the file FROM to TO.  In the normal case of strip,
>FROM is a temporary file, and TO is the original file which we are
>stripping.  However, this function is also used in other cases.
>
>If TO does not exist, we should just use rename.  This is not the
>normal case of strip, but it happens in other cases.  Your patch
>breaks that.  That seems to be only significant change in your patch.
>Perhaps I am missing something.
>
>I think the only way to reliably preserve ownership is to avoid using
>rename.  Perhaps the code should be changed to call simple_copy when
>the owner of the file differs from the effective uid.

I think my patch produces the behavior that the comments are suggesting. 
The old code was bogus anyway, cause it tried to chmod/chown "to" after 
rename with values from a non-existing (exists != 0, this is really a 
bad-named variable, it's named the opposite of it's meaning) file.

Franz.