diff options
author | Ferass El Hafidi <vitali64pmemail@protonmail.com> | 2023-03-30 18:46:26 +0200 |
---|---|---|
committer | Ferass El Hafidi <vitali64pmemail@protonmail.com> | 2023-03-30 18:46:26 +0200 |
commit | 1b2e06f7f15b3d8ba720ea3839abb1244bc4a859 (patch) | |
tree | 24efcb4dd514edc2d2a421b8ef8d31648656daef | |
parent | 9c1c188c029f0492a9baf81248a355169bdb2577 (diff) | |
download | fases-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.c | 11 |
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; } |