libsubid: don't print error messages on stderr by default
Closes #325 Add a new subid_init() function which can be used to specify the stream on which error messages should be printed. (If you want to get fancy you can redirect that to memory :) If subid_init() is not called, use stderr. If NULL is passed, then /dev/null will be used. This patch also fixes up the 'Prog', which previously had to be defined by any program linking against libsubid. Now, by default in libsubid it will show (subid). Once subid_init() is called, it will use the first variable passed to subid_init(). Signed-off-by: Serge Hallyn <serge@hallyn.com>
This commit is contained in:
@@ -62,6 +62,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static bool
|
||||
dflg = false, /* set last password change date */
|
||||
@@ -814,6 +815,7 @@ int main (int argc, char **argv)
|
||||
* Get the program name so that error messages can use it.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
sanitize_env ();
|
||||
(void) setlocale (LC_ALL, "");
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "idmapping.h"
|
||||
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
@@ -25,6 +26,7 @@ int main(int argc, char **argv)
|
||||
unsigned long start, count;
|
||||
bool check_uids;
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
if (argc != 5)
|
||||
exit(1);
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
* Global variables.
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
static char fullnm[BUFSIZ];
|
||||
static char roomno[BUFSIZ];
|
||||
static char workph[BUFSIZ];
|
||||
@@ -639,6 +640,7 @@ int main (int argc, char **argv)
|
||||
* prefix to most error messages.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
sanitize_env ();
|
||||
(void) setlocale (LC_ALL, "");
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
static bool eflg = false;
|
||||
static bool md5flg = false;
|
||||
#if defined(USE_SHA_CRYPT) || defined(USE_BCRYPT) || defined(USE_YESCRYPT)
|
||||
@@ -437,6 +438,7 @@ int main (int argc, char **argv)
|
||||
int line = 0;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
static bool eflg = false;
|
||||
static bool md5flg = false;
|
||||
#if defined(USE_SHA_CRYPT) || defined(USE_BCRYPT) || defined(USE_YESCRYPT)
|
||||
@@ -429,6 +430,7 @@ int main (int argc, char **argv)
|
||||
int line = 0;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog; /* Program name */
|
||||
FILE *shadow_logfd = NULL;
|
||||
static bool amroot; /* Real UID is root */
|
||||
static char loginsh[BUFSIZ]; /* Name of new login shell */
|
||||
/* command line options */
|
||||
@@ -441,6 +442,7 @@ int main (int argc, char **argv)
|
||||
* most error messages.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
|
||||
/* Global variables */
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
static bool cflg = false;
|
||||
|
||||
/* local function prototypes */
|
||||
@@ -144,6 +145,7 @@ int main (int argc, char **argv)
|
||||
struct spwd *spwd;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
sanitize_env ();
|
||||
|
||||
|
||||
@@ -62,6 +62,7 @@ static void reset (void);
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog; /* Program name */
|
||||
FILE *shadow_logfd = NULL;
|
||||
static FILE *fail; /* failure file stream */
|
||||
static time_t seconds; /* that number of days in seconds */
|
||||
static unsigned long umin; /* if uflg and has_umin, only display users with uid >= umin */
|
||||
@@ -573,6 +574,7 @@ int main (int argc, char **argv)
|
||||
* most error messages.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
/* Test program for the subid freeing routine */
|
||||
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
void usage(void)
|
||||
{
|
||||
@@ -23,6 +24,7 @@ int main(int argc, char *argv[])
|
||||
bool group = false; // get subuids by default
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
while ((c = getopt(argc, argv, "g")) != EOF) {
|
||||
switch(c) {
|
||||
case 'g': group = true; break;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "prototypes.h"
|
||||
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
void usage(void)
|
||||
{
|
||||
@@ -19,6 +20,7 @@ int main(int argc, char *argv[])
|
||||
uid_t *uids;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
if (argc < 2) {
|
||||
usage();
|
||||
}
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
*/
|
||||
/* The name of this command, as it is invoked */
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
#ifdef SHADOWGRP
|
||||
/* Indicate if shadow groups are enabled on the system
|
||||
@@ -988,6 +989,7 @@ int main (int argc, char **argv)
|
||||
*/
|
||||
bywho = getuid ();
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
OPENLOG ("gpasswd");
|
||||
setbuf (stdout, NULL);
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static /*@null@*/char *group_name;
|
||||
static gid_t group_id;
|
||||
@@ -598,6 +599,7 @@ int main (int argc, char **argv)
|
||||
* Get my name so that I can use it to report errors.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static char *group_name;
|
||||
static gid_t group_id = -1;
|
||||
@@ -376,6 +377,7 @@ int main (int argc, char **argv)
|
||||
* Get my name so that I can use it to report errors.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static char *adduser = NULL;
|
||||
static char *deluser = NULL;
|
||||
@@ -595,6 +596,7 @@ int main (int argc, char **argv)
|
||||
* Get my name so that I can use it to report errors.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
#ifdef SHADOWGRP
|
||||
static bool is_shadow_grp;
|
||||
@@ -792,6 +793,7 @@ int main (int argc, char **argv)
|
||||
* Get my name so that I can use it to report errors.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
/* local function prototypes */
|
||||
static void print_groups (const char *member);
|
||||
@@ -126,6 +127,7 @@ int main (int argc, char **argv)
|
||||
* Get the program name so that error messages can use it.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
if (argc == 1) {
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static const char *grp_file = GROUP_FILE;
|
||||
static bool use_system_grp_file = true;
|
||||
@@ -840,6 +841,7 @@ int main (int argc, char **argv)
|
||||
* Get my name so that I can use it to report errors.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static bool gr_locked = false;
|
||||
static bool sgr_locked = false;
|
||||
@@ -146,6 +147,7 @@ int main (int argc, char **argv)
|
||||
struct sgrp sgent;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static bool gr_locked = false;
|
||||
static bool sgr_locked = false;
|
||||
@@ -145,6 +146,7 @@ int main (int argc, char **argv)
|
||||
const struct sgrp *sg;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -62,6 +62,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog; /* Program name */
|
||||
FILE *shadow_logfd = NULL;
|
||||
static FILE *lastlogfile; /* lastlog file stream */
|
||||
static unsigned long umin; /* if uflg and has_umin, only display users with uid >= umin */
|
||||
static bool has_umin = false;
|
||||
@@ -317,6 +318,7 @@ int main (int argc, char **argv)
|
||||
* most error messages.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "prototypes.h"
|
||||
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
void usage(void)
|
||||
{
|
||||
@@ -19,6 +20,7 @@ int main(int argc, char *argv[])
|
||||
struct subordinate_range **ranges;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
if (argc < 2) {
|
||||
usage();
|
||||
}
|
||||
|
||||
@@ -83,6 +83,7 @@ static pam_handle_t *pamh = NULL;
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static const char *hostname = "";
|
||||
static /*@null@*/ /*@only@*/char *username = NULL;
|
||||
@@ -577,6 +578,7 @@ int main (int argc, char **argv)
|
||||
|
||||
amroot = (getuid () == 0);
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
if (geteuid() != 0) {
|
||||
fprintf (stderr, _("%s: Cannot possibly work without effective root\n"), Prog);
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
#ifndef DEFAULT_HUP_MESG
|
||||
#define DEFAULT_HUP_MESG _("login time exceeded\n\n")
|
||||
@@ -187,6 +188,7 @@ int main (int argc, char **argv)
|
||||
* Start syslogging everything
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
OPENLOG ("logoutd");
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
/* Test program for the subid creation routine */
|
||||
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
void usage(void)
|
||||
{
|
||||
@@ -26,6 +27,7 @@ int main(int argc, char *argv[])
|
||||
bool ok;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
while ((c = getopt(argc, argv, "gn")) != EOF) {
|
||||
switch(c) {
|
||||
case 'n': makenew = true; break;
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
|
||||
static bool verify_range(struct passwd *pw, struct map_range *range, bool *allow_setgroups)
|
||||
@@ -176,6 +177,7 @@ int main(int argc, char **argv)
|
||||
bool allow_setgroups = false;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
/*
|
||||
* The valid syntax are
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
extern char **newenvp;
|
||||
extern char **environ;
|
||||
@@ -443,6 +444,7 @@ int main (int argc, char **argv)
|
||||
* don't need to re-exec anything. -- JWP
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
is_newgrp = (strcmp (Prog, "newgrp") == 0);
|
||||
OPENLOG (is_newgrp ? "newgrp" : "sg");
|
||||
argc--;
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static bool verify_range(struct passwd *pw, struct map_range *range)
|
||||
{
|
||||
@@ -106,6 +107,7 @@ int main(int argc, char **argv)
|
||||
int written;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
/*
|
||||
* The valid syntax are
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static bool rflg = false; /* create a system account */
|
||||
#ifndef USE_PAM
|
||||
@@ -1052,6 +1053,7 @@ int main (int argc, char **argv)
|
||||
#endif /* USE_PAM */
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog; /* Program name */
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static char *name; /* The name of user whose password is being changed */
|
||||
static char *myname; /* The current user's name */
|
||||
@@ -752,6 +753,7 @@ int main (int argc, char **argv)
|
||||
* most error messages.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static bool use_system_pw_file = true;
|
||||
static bool use_system_spw_file = true;
|
||||
|
||||
@@ -89,6 +89,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static bool spw_locked = false;
|
||||
static bool pw_locked = false;
|
||||
@@ -176,6 +177,7 @@ int main (int argc, char **argv)
|
||||
struct spwd spent;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static bool spw_locked = false;
|
||||
static bool pw_locked = false;
|
||||
@@ -137,6 +138,7 @@ int main (int argc, char **argv)
|
||||
const struct spwd *spwd;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
2
src/su.c
2
src/su.c
@@ -82,6 +82,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
static /*@observer@*/const char *caller_tty = NULL; /* Name of tty SU is run from */
|
||||
static bool caller_is_root = false;
|
||||
static uid_t caller_uid;
|
||||
@@ -716,6 +717,7 @@ static void save_caller_context (char **argv)
|
||||
* most error messages.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
caller_uid = getuid ();
|
||||
caller_is_root = (caller_uid == 0);
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static char name[BUFSIZ];
|
||||
static char pass[BUFSIZ];
|
||||
@@ -106,6 +107,7 @@ static RETSIGTYPE catch_signals (unused int sig)
|
||||
#endif
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
(void) textdomain (PACKAGE);
|
||||
|
||||
@@ -96,6 +96,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
/*
|
||||
* These defaults are used if there is no defaults file.
|
||||
@@ -2391,6 +2392,7 @@ int main (int argc, char **argv)
|
||||
* Get my name so that I can use it to report errors.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -91,6 +91,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static char *user_name;
|
||||
static uid_t user_id;
|
||||
@@ -1015,6 +1016,7 @@ int main (int argc, char **argv)
|
||||
* Get my name so that I can use it to report errors.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
(void) textdomain (PACKAGE);
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static char *user_name;
|
||||
static char *user_newname;
|
||||
@@ -2200,6 +2201,7 @@ int main (int argc, char **argv)
|
||||
* Get my name so that I can use it to report errors.
|
||||
*/
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
* Global variables
|
||||
*/
|
||||
const char *Prog;
|
||||
FILE *shadow_logfd = NULL;
|
||||
|
||||
static const char *filename, *fileeditname;
|
||||
static bool filelocked = false;
|
||||
@@ -481,6 +482,7 @@ int main (int argc, char **argv)
|
||||
bool do_vipw;
|
||||
|
||||
Prog = Basename (argv[0]);
|
||||
shadow_logfd = stderr;
|
||||
|
||||
(void) setlocale (LC_ALL, "");
|
||||
(void) bindtextdomain (PACKAGE, LOCALEDIR);
|
||||
|
||||
Reference in New Issue
Block a user