From: Alejandro Colomar Date: Thu, 7 Mar 2024 22:38:48 +0000 (+0100) Subject: src/vipw.c: Use string literals to initialize 'Prog' X-Git-Tag: 4.15.0~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=89c4da43cbe8cfbbd949f523944343391c5302a2;p=thirdparty%2Fshadow.git src/vipw.c: Use string literals to initialize 'Prog' This avoids using argv[0], which is controlled by the user, and might inject arbitrary text in stderr and the logs. Link: Link: Cc: "Skyler Ferrante (RIT Student)" Cc: "Serge E. Hallyn" Cc: Karel Zak Cc: Iker Pedrosa Cc: Christian Brauner Signed-off-by: Alejandro Colomar --- diff --git a/src/vipw.c b/src/vipw.c index 609ac1bfc..c30b32dee 100644 --- a/src/vipw.c +++ b/src/vipw.c @@ -55,7 +55,7 @@ /* * Global variables */ -const char *Prog; +static const char *Prog; static const char *filename, *fileeditname; static bool filelocked = false; @@ -471,7 +471,9 @@ int main (int argc, char **argv) bool editshadow = false; bool do_vigr; - Prog = Basename (argv[0]); + do_vigr = (strcmp(Basename(argv[0]), "vigr") == 0); + + Prog = do_vigr ? "vigr" : "vipw"; log_set_progname(Prog); log_set_logfd(stderr); @@ -481,9 +483,7 @@ int main (int argc, char **argv) process_root_flag ("-R", argc, argv); - do_vigr = (strcmp(Prog, "vigr") == 0); - - OPENLOG(do_vigr ? "vigr" : "vipw"); + OPENLOG(Prog); { /*