From 1f5bd5c4c84c53915bcdd68398e77269fe26328c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Sat, 12 Sep 2020 18:11:58 +0200 Subject: [PATCH] Avoid modifying optarg It might be working, but lets rather not modify getopt's global variable `optarg`. Also there is no need to call `getenv("USER")`, just use `geteuid()`. --- htop.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/htop.c b/htop.c index 2cf2602e..79526b88 100644 --- a/htop.c +++ b/htop.c @@ -131,21 +131,21 @@ static CommandLineSettings parseArguments(int argc, char** argv) { } break; case 'u': - if (!optarg && optind < argc && argv[optind] != NULL && + { + const char *username = optarg; + if (!username && optind < argc && argv[optind] != NULL && (argv[optind][0] != '\0' && argv[optind][0] != '-')) { - optarg = argv[optind++]; + username = argv[optind++]; } - if (!optarg) { - optarg = getenv("USER"); + if (!username) { flags.userId = geteuid(); - } - - if (!Action_setUserOnly(optarg, &(flags.userId))) { - fprintf(stderr, "Error: invalid user \"%s\".\n", optarg); + } else if (!Action_setUserOnly(username, &(flags.userId))) { + fprintf(stderr, "Error: invalid user \"%s\".\n", username); exit(1); } break; + } case 'C': flags.useColors = false; break;