$NetBSD: patch-expreserve_c,v 1.1 2012/12/28 03:03:09 dholland Exp $ - declare void functions void - use static for local functions - use a bit of const - silence gcc warnings about unused arguments - avoid implicit int - don't pass a string constant to putenv() --- expreserve.c.orig 2002-08-27 04:14:56.000000000 +0000 +++ expreserve.c @@ -203,10 +203,10 @@ char xstr[1]; /* make loader happy */ #endif #endif -int notify __P((uid_t uid, char *fname, int flag, time_t time)); -int copyout __P((char *name)); -int mkdigits __P((char *cp)); -int mknext __P((char *cp)); +static void notify __P((uid_t uid, const char *fname, int flag, time_t time)); +static int copyout __P((char *name)); +static void mkdigits __P((char *cp)); +static void mknext __P((char *cp)); /* * Expreserve - preserve a file in /usr/preserve @@ -275,6 +275,7 @@ char **argv; exit(1); exit(0); } + (void)argv; /* * If not super user, then can only preserve standard input. @@ -328,9 +329,11 @@ char pattern[] = "/var/preserve/Exa`XXXX /* * Notify user uid that his file fname has been saved. */ +static void notify(uid, fname, flag, time) uid_t uid; - char *fname; + const char *fname; + int flag; time_t time; { struct passwd *pp = getpwuid(uid); @@ -345,6 +348,9 @@ notify(uid, fname, flag, time) char croak[128]; char *timestamp, *ctime(); + /* cannot properly string constants to putenv */ + static char mailrc_var[] = "MAILRC=/dev/null"; + if (pp == NULL) return; #ifndef POSIX_1 @@ -355,7 +361,7 @@ notify(uid, fname, flag, time) #endif timestamp = ctime(&time); timestamp[16] = 0; /* blast from seconds on */ - putenv("MAILRC=/dev/null"); + putenv(mailrc_var); sprintf(cmd, "/bin/mail %s", pp->pw_name); setuid(getuid()); mf = popen(cmd, "w"); @@ -411,6 +417,7 @@ notify(uid, fname, flag, time) * file (this is the slowest thing since we must stat * to find a unique name), and finally copy the file. */ +static int copyout(name) char *name; { @@ -546,6 +553,7 @@ format: /* * Blast the last 5 characters of cp to be the process number. */ +static void mkdigits(cp) char *cp; { @@ -566,6 +574,7 @@ mkdigits(cp) * three alphabetic characters into a sequence of the form 'aab', 'aac', etc. * Mktemp gets weird names too quickly to be useful here. */ +static void mknext(cp) char *cp; {