Mercurial > hg > octave-lojdl > gnulib-hg
changeset 5172:43b6cc039c49
(rpl_chown): Work even if the file is writeable but not readable.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Tue, 10 Aug 2004 04:49:04 +0000 |
parents | 496d490f0b30 |
children | 663a1b941e51 |
files | lib/chown.c |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/chown.c +++ b/lib/chown.c @@ -68,10 +68,11 @@ /* Handle the case in which the system-supplied chown function does *not* follow symlinks. Instead, it changes permissions on the symlink itself. To work around that, we open the - file (but this can fail due to lack of read permission) and + file (but this can fail due to lack of read or write permission) and use fchown on the resulting descriptor. */ int fd = open (file, O_RDONLY | O_NONBLOCK | O_NOCTTY); - if (fd == -1) + if (fd < 0 + && (fd = open (file, O_WRONLY | O_NONBLOCK | O_NOCTTY)) < 0) return -1; if (fchown (fd, uid, gid)) {