=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/rsync/downloader.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- src/usr.bin/rsync/downloader.c 2019/02/12 19:10:28 1.5 +++ src/usr.bin/rsync/downloader.c 2019/02/12 19:13:59 1.6 @@ -1,4 +1,4 @@ -/* $Id: downloader.c,v 1.5 2019/02/12 19:10:28 benno Exp $ */ +/* $Id: downloader.c,v 1.6 2019/02/12 19:13:59 benno Exp $ */ /* * Copyright (c) 2019 Kristaps Dzonsons * @@ -568,14 +568,23 @@ goto out; } + /* + * Conditionally adjust group id. + * FIXME: remember the original file's group id and don't + * reassign it if it's the same. + * If we have an EPERM, report it but continue on: this just + * means that we're mapping into an unknown (or disallowed) + * group identifier. + */ + if (sess->opts->preserve_gids) { if (fchown(p->fd, -1, f->st.gid) == -1) { if (errno != EPERM) { ERR(sess, "%s: fchown", p->fname); goto out; } - WARNX(sess, "%s: gid not available to user: %u", - f->path, f->st.gid); + WARNX(sess, "%s: gid unknown or not available " + "to user: %u", f->path, f->st.gid); } else LOG4(sess, "%s: updated gid", f->path); }