diff -up shadow-4.9/lib/commonio.c.debug2 shadow-4.9/lib/commonio.c --- shadow-4.9/lib/commonio.c.debug2 2022-01-10 10:57:47.535238522 +0100 +++ shadow-4.9/lib/commonio.c 2022-01-10 10:57:47.544238586 +0100 @@ -147,7 +147,7 @@ static int do_lock_file (const char *fil if (log) { (void) fprintf (shadow_logfd, "%s: %s: %s\n", - Prog, file, strerror (errno)); + shadow_progname, file, strerror (errno)); } return 0; } @@ -159,7 +159,7 @@ static int do_lock_file (const char *fil if (log) { (void) fprintf (shadow_logfd, "%s: %s file write error: %s\n", - Prog, file, strerror (errno)); + shadow_progname, file, strerror (errno)); } (void) close (fd); unlink (file); @@ -169,7 +169,7 @@ static int do_lock_file (const char *fil if (log) { (void) fprintf (shadow_logfd, "%s: %s file sync error: %s\n", - Prog, file, strerror (errno)); + shadow_progname, file, strerror (errno)); } (void) close (fd); unlink (file); @@ -182,7 +182,7 @@ static int do_lock_file (const char *fil if ((0==retval) && log) { (void) fprintf (shadow_logfd, "%s: %s: lock file already used\n", - Prog, file); + shadow_progname, file); } unlink (file); return retval; @@ -193,7 +193,7 @@ static int do_lock_file (const char *fil if (log) { (void) fprintf (shadow_logfd, "%s: %s: %s\n", - Prog, lock, strerror (errno)); + shadow_progname, lock, strerror (errno)); } unlink (file); errno = EINVAL; @@ -205,7 +205,7 @@ static int do_lock_file (const char *fil if (log) { (void) fprintf (shadow_logfd, "%s: existing lock file %s without a PID\n", - Prog, lock); + shadow_progname, lock); } unlink (file); errno = EINVAL; @@ -216,7 +216,7 @@ static int do_lock_file (const char *fil if (log) { (void) fprintf (shadow_logfd, "%s: existing lock file %s with an invalid PID '%s'\n", - Prog, lock, buf); + shadow_progname, lock, buf); } unlink (file); errno = EINVAL; @@ -226,7 +226,7 @@ static int do_lock_file (const char *fil if (log) { (void) fprintf (shadow_logfd, "%s: lock %s already used by PID %lu\n", - Prog, lock, (unsigned long) pid); + shadow_progname, lock, (unsigned long) pid); } unlink (file); errno = EEXIST; @@ -236,7 +236,7 @@ static int do_lock_file (const char *fil if (log) { (void) fprintf (shadow_logfd, "%s: cannot get lock %s: %s\n", - Prog, lock, strerror (errno)); + shadow_progname, lock, strerror (errno)); } unlink (file); return 0; @@ -248,13 +248,13 @@ static int do_lock_file (const char *fil if ((0==retval) && log) { (void) fprintf (shadow_logfd, "%s: %s: lock file already used\n", - Prog, file); + shadow_progname, file); } } else { if (log) { (void) fprintf (shadow_logfd, "%s: cannot get lock %s: %s\n", - Prog, lock, strerror (errno)); + shadow_progname, lock, strerror (errno)); } } @@ -449,7 +449,7 @@ int commonio_lock (struct commonio_db *d if (geteuid () != 0) { (void) fprintf (shadow_logfd, "%s: Permission denied.\n", - Prog); + shadow_progname); } return 0; /* failure */ } @@ -484,7 +484,7 @@ int commonio_lock (struct commonio_db *d /* no unnecessary retries on "permission denied" errors */ if (geteuid () != 0) { (void) fprintf (shadow_logfd, "%s: Permission denied.\n", - Prog); + shadow_progname); return 0; } } diff -up shadow-4.9/lib/nscd.c.debug2 shadow-4.9/lib/nscd.c --- shadow-4.9/lib/nscd.c.debug2 2022-01-10 10:57:47.537238536 +0100 +++ shadow-4.9/lib/nscd.c 2022-01-10 10:57:47.544238586 +0100 @@ -26,7 +26,7 @@ int nscd_flush_cache (const char *servic if (run_command (cmd, spawnedArgs, spawnedEnv, &status) != 0) { /* run_command writes its own more detailed message. */ - (void) fprintf (shadow_logfd, _(MSG_NSCD_FLUSH_CACHE_FAILED), Prog); + (void) fprintf (shadow_logfd, _(MSG_NSCD_FLUSH_CACHE_FAILED), shadow_progname); return -1; } @@ -34,7 +34,7 @@ int nscd_flush_cache (const char *servic if (!WIFEXITED (status)) { (void) fprintf (shadow_logfd, _("%s: nscd did not terminate normally (signal %d)\n"), - Prog, WTERMSIG (status)); + shadow_progname, WTERMSIG (status)); return -1; } else if (code == E_CMD_NOTFOUND) { /* nscd is not installed, or it is installed but uses an @@ -45,8 +45,8 @@ int nscd_flush_cache (const char *servic return 0; } else if (code != 0) { (void) fprintf (shadow_logfd, _("%s: nscd exited with status %d\n"), - Prog, code); - (void) fprintf (shadow_logfd, _(MSG_NSCD_FLUSH_CACHE_FAILED), Prog); + shadow_progname, code); + (void) fprintf (shadow_logfd, _(MSG_NSCD_FLUSH_CACHE_FAILED), shadow_progname); return -1; } diff -up shadow-4.9/lib/selinux.c.debug2 shadow-4.9/lib/selinux.c --- shadow-4.9/lib/selinux.c.debug2 2022-01-10 10:57:47.538238543 +0100 +++ shadow-4.9/lib/selinux.c 2022-01-10 10:57:47.544238586 +0100 @@ -216,7 +216,7 @@ int check_selinux_permit (const char *pe if (getprevcon_raw (&user_context_raw) != 0) { fprintf (shadow_logfd, _("%s: can not get previous SELinux process context: %s\n"), - Prog, strerror (errno)); + shadow_progname, strerror (errno)); SYSLOG ((LOG_WARN, "can not get previous SELinux process context: %s", strerror (errno))); diff -up shadow-4.9/lib/shadowlog.c.debug2 shadow-4.9/lib/shadowlog.c --- shadow-4.9/lib/shadowlog.c.debug2 2022-01-10 10:57:47.538238543 +0100 +++ shadow-4.9/lib/shadowlog.c 2022-01-10 10:57:47.544238586 +0100 @@ -2,14 +2,17 @@ #include "lib/shadowlog_internal.h" +const char *shadow_progname; +FILE *shadow_logfd; + void log_set_progname(const char *progname) { - Prog = progname; + shadow_progname = progname; } const char *log_get_progname(void) { - return Prog; + return shadow_progname; } void log_set_logfd(FILE *fd) diff -up shadow-4.9/lib/shadowlog_internal.h.debug2 shadow-4.9/lib/shadowlog_internal.h --- shadow-4.9/lib/shadowlog_internal.h.debug2 2022-01-10 10:57:47.538238543 +0100 +++ shadow-4.9/lib/shadowlog_internal.h 2022-01-10 10:57:47.544238586 +0100 @@ -1,2 +1,2 @@ -const char *Prog; /* Program name showed in error messages */ -FILE *shadow_logfd; /* file descripter to which error messages are printed */ +extern const char *shadow_progname; /* Program name showed in error messages */ +extern FILE *shadow_logfd; /* file descripter to which error messages are printed */ diff -up shadow-4.9/lib/spawn.c.debug2 shadow-4.9/lib/spawn.c --- shadow-4.9/lib/spawn.c.debug2 2022-01-10 10:57:47.538238543 +0100 +++ shadow-4.9/lib/spawn.c 2022-01-10 10:57:47.544238586 +0100 @@ -60,11 +60,11 @@ int run_command (const char *cmd, const exit (E_CMD_NOTFOUND); } fprintf (shadow_logfd, "%s: cannot execute %s: %s\n", - Prog, cmd, strerror (errno)); + shadow_progname, cmd, strerror (errno)); exit (E_CMD_NOEXEC); } else if ((pid_t)-1 == pid) { fprintf (shadow_logfd, "%s: cannot execute %s: %s\n", - Prog, cmd, strerror (errno)); + shadow_progname, cmd, strerror (errno)); return -1; } @@ -77,7 +77,7 @@ int run_command (const char *cmd, const if ((pid_t)-1 == wpid) { fprintf (shadow_logfd, "%s: waitpid (status: %d): %s\n", - Prog, *status, strerror (errno)); + shadow_progname, *status, strerror (errno)); return -1; } diff -up shadow-4.9/lib/sssd.c.debug2 shadow-4.9/lib/sssd.c --- shadow-4.9/lib/sssd.c.debug2 2022-01-10 10:57:47.538238543 +0100 +++ shadow-4.9/lib/sssd.c 2022-01-10 10:57:47.544238586 +0100 @@ -48,22 +48,22 @@ int sssd_flush_cache (int dbflags) free(sss_cache_args); if (rv != 0) { /* run_command writes its own more detailed message. */ - SYSLOG ((LOG_WARN, MSG_SSSD_FLUSH_CACHE_FAILED, Prog)); + SYSLOG ((LOG_WARN, MSG_SSSD_FLUSH_CACHE_FAILED, shadow_progname)); return -1; } code = WEXITSTATUS (status); if (!WIFEXITED (status)) { SYSLOG ((LOG_WARN, "%s: sss_cache did not terminate normally (signal %d)", - Prog, WTERMSIG (status))); + shadow_progname, WTERMSIG (status))); return -1; } else if (code == E_CMD_NOTFOUND) { /* sss_cache is not installed, or it is installed but uses an interpreter that is missing. Probably the former. */ return 0; } else if (code != 0) { - SYSLOG ((LOG_WARN, "%s: sss_cache exited with status %d", Prog, code)); - SYSLOG ((LOG_WARN, MSG_SSSD_FLUSH_CACHE_FAILED, Prog)); + SYSLOG ((LOG_WARN, "%s: sss_cache exited with status %d", shadow_progname, code)); + SYSLOG ((LOG_WARN, MSG_SSSD_FLUSH_CACHE_FAILED, shadow_progname)); return -1; } diff -up shadow-4.9/lib/tcbfuncs.c.debug2 shadow-4.9/lib/tcbfuncs.c --- shadow-4.9/lib/tcbfuncs.c.debug2 2022-01-10 10:57:47.538238543 +0100 +++ shadow-4.9/lib/tcbfuncs.c 2022-01-10 10:59:01.228764507 +0100 @@ -74,7 +74,7 @@ shadowtcb_status shadowtcb_gain_priv (vo * to exit soon. */ #define OUT_OF_MEMORY do { \ - fprintf (shadow_logfd, _("%s: out of memory\n"), Prog); \ + fprintf (shadow_logfd, _("%s: out of memory\n"), shadow_progname); \ (void) fflush (shadow_logfd); \ } while (false) @@ -120,7 +120,7 @@ static /*@null@*/ char *shadowtcb_path_r if (lstat (path, &st) != 0) { fprintf (shadow_logfd, _("%s: Cannot stat %s: %s\n"), - Prog, path, strerror (errno)); + shadow_progname, path, strerror (errno)); free (path); return NULL; } @@ -136,7 +136,7 @@ static /*@null@*/ char *shadowtcb_path_r if (!S_ISLNK (st.st_mode)) { fprintf (shadow_logfd, _("%s: %s is neither a directory, nor a symlink.\n"), - Prog, path); + shadow_progname, path); free (path); return NULL; } @@ -144,7 +144,7 @@ static /*@null@*/ char *shadowtcb_path_r if (-1 == ret) { fprintf (shadow_logfd, _("%s: Cannot read symbolic link %s: %s\n"), - Prog, path, strerror (errno)); + shadow_progname, path, strerror (errno)); free (path); return NULL; } @@ -153,7 +153,7 @@ static /*@null@*/ char *shadowtcb_path_r link[sizeof(link) - 1] = '\0'; fprintf (shadow_logfd, _("%s: Suspiciously long symlink: %s\n"), - Prog, link); + shadow_progname, link); return NULL; } link[(size_t)ret] = '\0'; @@ -211,7 +211,7 @@ static shadowtcb_status mkdir_leading (c if (stat (TCB_DIR, &st) != 0) { fprintf (shadow_logfd, _("%s: Cannot stat %s: %s\n"), - Prog, TCB_DIR, strerror (errno)); + shadow_progname, TCB_DIR, strerror (errno)); goto out_free_path; } while ((ind = strchr (ptr, '/'))) { @@ -223,19 +223,19 @@ static shadowtcb_status mkdir_leading (c if ((mkdir (dir, 0700) != 0) && (errno != EEXIST)) { fprintf (shadow_logfd, _("%s: Cannot create directory %s: %s\n"), - Prog, dir, strerror (errno)); + shadow_progname, dir, strerror (errno)); goto out_free_dir; } if (chown (dir, 0, st.st_gid) != 0) { fprintf (shadow_logfd, _("%s: Cannot change owner of %s: %s\n"), - Prog, dir, strerror (errno)); + shadow_progname, dir, strerror (errno)); goto out_free_dir; } if (chmod (dir, 0711) != 0) { fprintf (shadow_logfd, _("%s: Cannot change mode of %s: %s\n"), - Prog, dir, strerror (errno)); + shadow_progname, dir, strerror (errno)); goto out_free_dir; } free (dir); @@ -265,7 +265,7 @@ static shadowtcb_status unlink_suffs (co if ((unlink (tmp) != 0) && (errno != ENOENT)) { fprintf (shadow_logfd, _("%s: unlink: %s: %s\n"), - Prog, tmp, strerror (errno)); + shadow_progname, tmp, strerror (errno)); free (tmp); return SHADOWTCB_FAILURE; } @@ -290,7 +290,7 @@ static shadowtcb_status rmdir_leading (c if (errno != ENOTEMPTY) { fprintf (shadow_logfd, _("%s: Cannot remove directory %s: %s\n"), - Prog, dir, strerror (errno)); + shadow_progname, dir, strerror (errno)); ret = SHADOWTCB_FAILURE; } free (dir); @@ -319,7 +319,7 @@ static shadowtcb_status move_dir (const if (stat (olddir, &oldmode) != 0) { fprintf (shadow_logfd, _("%s: Cannot stat %s: %s\n"), - Prog, olddir, strerror (errno)); + shadow_progname, olddir, strerror (errno)); goto out_free; } old_uid = oldmode.st_uid; @@ -346,7 +346,7 @@ static shadowtcb_status move_dir (const if (rename (real_old_dir, real_new_dir) != 0) { fprintf (shadow_logfd, _("%s: Cannot rename %s to %s: %s\n"), - Prog, real_old_dir, real_new_dir, strerror (errno)); + shadow_progname, real_old_dir, real_new_dir, strerror (errno)); goto out_free; } if (rmdir_leading (real_old_dir_rel) == SHADOWTCB_FAILURE) { @@ -355,7 +355,7 @@ static shadowtcb_status move_dir (const if ((unlink (olddir) != 0) && (errno != ENOENT)) { fprintf (shadow_logfd, _("%s: Cannot remove %s: %s\n"), - Prog, olddir, strerror (errno)); + shadow_progname, olddir, strerror (errno)); goto out_free; } if (asprintf (&newdir, TCB_DIR "/%s", user_newname) == -1) { @@ -369,7 +369,7 @@ static shadowtcb_status move_dir (const && (symlink (real_new_dir_rel, newdir) != 0)) { fprintf (shadow_logfd, _("%s: Cannot create symbolic link %s: %s\n"), - Prog, real_new_dir_rel, strerror (errno)); + shadow_progname, real_new_dir_rel, strerror (errno)); goto out_free; } ret = SHADOWTCB_SUCCESS; @@ -468,31 +468,31 @@ shadowtcb_status shadowtcb_move (/*@NULL if (stat (tcbdir, &dirmode) != 0) { fprintf (shadow_logfd, _("%s: Cannot stat %s: %s\n"), - Prog, tcbdir, strerror (errno)); + shadow_progname, tcbdir, strerror (errno)); goto out_free; } if (chown (tcbdir, 0, 0) != 0) { fprintf (shadow_logfd, _("%s: Cannot change owners of %s: %s\n"), - Prog, tcbdir, strerror (errno)); + shadow_progname, tcbdir, strerror (errno)); goto out_free; } if (chmod (tcbdir, 0700) != 0) { fprintf (shadow_logfd, _("%s: Cannot change mode of %s: %s\n"), - Prog, tcbdir, strerror (errno)); + shadow_progname, tcbdir, strerror (errno)); goto out_free; } if (lstat (shadow, &filemode) != 0) { if (errno != ENOENT) { fprintf (shadow_logfd, _("%s: Cannot lstat %s: %s\n"), - Prog, shadow, strerror (errno)); + shadow_progname, shadow, strerror (errno)); goto out_free; } fprintf (shadow_logfd, _("%s: Warning, user %s has no tcb shadow file.\n"), - Prog, user_newname); + shadow_progname, user_newname); } else { if (!S_ISREG (filemode.st_mode) || filemode.st_nlink != 1) { @@ -500,19 +500,19 @@ shadowtcb_status shadowtcb_move (/*@NULL _("%s: Emergency: %s's tcb shadow is not a " "regular file with st_nlink=1.\n" "The account is left locked.\n"), - Prog, user_newname); + shadow_progname, user_newname); goto out_free; } if (chown (shadow, user_newid, filemode.st_gid) != 0) { fprintf (shadow_logfd, _("%s: Cannot change owner of %s: %s\n"), - Prog, shadow, strerror (errno)); + shadow_progname, shadow, strerror (errno)); goto out_free; } if (chmod (shadow, filemode.st_mode & 07777) != 0) { fprintf (shadow_logfd, _("%s: Cannot change mode of %s: %s\n"), - Prog, shadow, strerror (errno)); + shadow_progname, shadow, strerror (errno)); goto out_free; } } @@ -522,7 +522,7 @@ shadowtcb_status shadowtcb_move (/*@NULL if (chown (tcbdir, user_newid, dirmode.st_gid) != 0) { fprintf (shadow_logfd, _("%s: Cannot change owner of %s: %s\n"), - Prog, tcbdir, strerror (errno)); + shadow_progname, tcbdir, strerror (errno)); goto out_free; } ret = SHADOWTCB_SUCCESS; @@ -547,7 +547,7 @@ shadowtcb_status shadowtcb_create (const if (stat (TCB_DIR, &tcbdir_stat) != 0) { fprintf (shadow_logfd, _("%s: Cannot stat %s: %s\n"), - Prog, TCB_DIR, strerror (errno)); + shadow_progname, TCB_DIR, strerror (errno)); return SHADOWTCB_FAILURE; } shadowgid = tcbdir_stat.st_gid; @@ -567,39 +567,39 @@ shadowtcb_status shadowtcb_create (const if (mkdir (dir, 0700) != 0) { fprintf (shadow_logfd, _("%s: mkdir: %s: %s\n"), - Prog, dir, strerror (errno)); + shadow_progname, dir, strerror (errno)); goto out_free; } fd = open (shadow, O_RDWR | O_CREAT | O_TRUNC, 0600); if (fd < 0) { fprintf (shadow_logfd, _("%s: Cannot open %s: %s\n"), - Prog, shadow, strerror (errno)); + shadow_progname, shadow, strerror (errno)); goto out_free; } close (fd); if (chown (shadow, 0, authgid) != 0) { fprintf (shadow_logfd, _("%s: Cannot change owner of %s: %s\n"), - Prog, shadow, strerror (errno)); + shadow_progname, shadow, strerror (errno)); goto out_free; } if (chmod (shadow, (mode_t) ((authgid == shadowgid) ? 0600 : 0640)) != 0) { fprintf (shadow_logfd, _("%s: Cannot change mode of %s: %s\n"), - Prog, shadow, strerror (errno)); + shadow_progname, shadow, strerror (errno)); goto out_free; } if (chown (dir, 0, authgid) != 0) { fprintf (shadow_logfd, _("%s: Cannot change owner of %s: %s\n"), - Prog, dir, strerror (errno)); + shadow_progname, dir, strerror (errno)); goto out_free; } if (chmod (dir, (mode_t) ((authgid == shadowgid) ? 02700 : 02710)) != 0) { fprintf (shadow_logfd, _("%s: Cannot change mode of %s: %s\n"), - Prog, dir, strerror (errno)); + shadow_progname, dir, strerror (errno)); goto out_free; } if ( (shadowtcb_set_user (name) == SHADOWTCB_FAILURE)