aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFerass El Hafidi <vitali64pmemail@protonmail.com>2023-03-30 18:46:26 +0200
committerFerass El Hafidi <vitali64pmemail@protonmail.com>2023-03-30 18:46:26 +0200
commit1b2e06f7f15b3d8ba720ea3839abb1244bc4a859 (patch)
tree24efcb4dd514edc2d2a421b8ef8d31648656daef
parent9c1c188c029f0492a9baf81248a355169bdb2577 (diff)
downloadfases-1b2e06f7f15b3d8ba720ea3839abb1244bc4a859.tar.gz
fases-1b2e06f7f15b3d8ba720ea3839abb1244bc4a859.zip
core/chown: fix argv handling
Signed-off-by: Ferass El Hafidi <vitali64pmemail@protonmail.com>
-rw-r--r--core/chown.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/core/chown.c b/core/chown.c
index 8fcefb0..a3fb2b7 100644
--- a/core/chown.c
+++ b/core/chown.c
@@ -14,19 +14,18 @@
int main(int argc, char *const argv[]) {
struct passwd *user;
- char *argv0 = strdup(argv[0]);
if (argc == 1) {
print_usage(argv[0], DESCRIPTION, OPERANDS, VERSION);
return 1;
}
- if ((user = getpwnam(argv[0])) == NULL && (user = getpwuid(strtol(argv[0], NULL, 10))) == NULL)
- return errprint(argv0, argv[0], errno); /* User doesn't exist */
+ if ((user = getpwnam(argv[1])) == NULL && (user = getpwuid(strtol(argv[1], NULL, 10))) == NULL)
+ return errprint(argv[0], argv[1], errno); /* User doesn't exist */
/* User found! */
- else if ((user = getpwnam(argv[0])) != NULL)
+ else if ((user = getpwnam(argv[1])) != NULL)
chown(argv[2], user->pw_uid, user->pw_gid);
- else if ((user = getpwuid(strtol(argv[0], NULL, 10))) != NULL)
+ else if ((user = getpwuid(strtol(argv[1], NULL, 10))) != NULL)
chown(argv[2], user->pw_uid, user->pw_gid);
- if (errno) return errprint(argv0, argv[0], errno);
+ if (errno) return errprint(argv[0], argv[2], errno);
return 0;
}