checkpath: apply ownership to all paths given on command line
The stat structure was not being initialized correctly in do_check. This was causing the owner adjustment to be skipped if the first path had the correct owner. Also, the "correcting owner" message should always be printed when the owner is being changed. X-Gentoo-Bug: 518042 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=518042
This commit is contained in:
parent
275714bdc7
commit
2624a8c8a7
@ -67,6 +67,7 @@ static int do_check(char *path, uid_t uid, gid_t gid, mode_t mode,
|
|||||||
int r;
|
int r;
|
||||||
int u;
|
int u;
|
||||||
|
|
||||||
|
memset(&st, 0, sizeof(st));
|
||||||
if (stat(path, &st) || trunc) {
|
if (stat(path, &st) || trunc) {
|
||||||
if (type == inode_file) {
|
if (type == inode_file) {
|
||||||
einfo("%s: creating file", path);
|
einfo("%s: creating file", path);
|
||||||
@ -140,8 +141,7 @@ static int do_check(char *path, uid_t uid, gid_t gid, mode_t mode,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (chowner && (st.st_uid != uid || st.st_gid != gid)) {
|
if (chowner && (st.st_uid != uid || st.st_gid != gid)) {
|
||||||
if (st.st_dev || st.st_ino)
|
einfo("%s: correcting owner", path);
|
||||||
einfo("%s: correcting owner", path);
|
|
||||||
if (chown(path, uid, gid)) {
|
if (chown(path, uid, gid)) {
|
||||||
eerror("%s: chown: %s", applet, strerror(errno));
|
eerror("%s: chown: %s", applet, strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user