#include "prototypes.h"
#include "commonio.h"
#include "shadowlog_internal.h"
+#include "string/sprintf.h"
/* local function prototypes */
static int do_lock_file (const char *file, const char *lock, bool log)
{
- int fd;
- pid_t pid;
- ssize_t len;
- int retval;
- char buf[32];
+ int fd;
+ int retval;
+ char buf[32];
+ pid_t pid;
+ ssize_t len;
fd = open (file, O_CREAT | O_TRUNC | O_WRONLY, 0600);
if (-1 == fd) {
}
pid = getpid ();
- snprintf (buf, sizeof buf, "%lu", (unsigned long) pid);
+ SNPRINTF(buf, "%lu", (unsigned long) pid);
len = (ssize_t) strlen (buf) + 1;
if (write_full(fd, buf, len) == -1) {
if (log) {
int commonio_setname (struct commonio_db *db, const char *name)
{
- snprintf (db->filename, sizeof (db->filename), "%s", name);
+ SNPRINTF(db->filename, "%s", name);
db->setname = true;
return 1;
}
int commonio_unlock (struct commonio_db *db)
{
- char lock[1029];
+ char lock[1029];
if (db->isopen) {
db->readonly = true;
* then call ulckpwdf() (if used) on last unlock.
*/
db->locked = false;
- snprintf (lock, sizeof lock, "%s.lock", db->filename);
+ SNPRINTF(lock, "%s.lock", db->filename);
unlink (lock);
dec_lock_count ();
return 1;
int commonio_close (struct commonio_db *db)
{
- int errors = 0, r;
+ int errors = 0;
char buf[1024];
struct stat sb;
/*
* Create backup file.
*/
- r = snprintf (buf, sizeof buf, "%s-", db->filename);
- if (r < 0 || (size_t)r >= sizeof buf) {
+ if (SNPRINTF(buf, "%s-", db->filename) == -1) {
(void) fclose (db->fp);
db->fp = NULL;
goto fail;
sb.st_gid = db->st_gid;
}
- r = snprintf (buf, sizeof buf, "%s+", db->filename);
- if (r < 0 || (size_t)r >= sizeof buf)
+ if (SNPRINTF(buf, "%s+", db->filename) == -1)
goto fail;
#ifdef WITH_SELINUX
*/
void set_env (int argc, char *const *argv)
{
- int noname = 1;
- char variable[1024];
- char *cp;
+ int noname = 1;
+ char variable[1024];
+ char *cp;
for (; argc > 0; argc--, argv++) {
if (strlen (*argv) >= sizeof variable) {
cp = strchr (*argv, '=');
if (NULL == cp) {
- int wlen;
- wlen = snprintf (variable, sizeof variable, "L%d", noname);
- assert (wlen < (int) sizeof(variable));
+ assert(SNPRINTF(variable, "L%d", noname) != -1);
noname++;
addenv (variable, *argv);
} else {
#include <sys/stat.h>
#include <fcntl.h>
+#include "string/sprintf.h"
+
+
int get_pid (const char *pidstr, pid_t *pid)
{
long long val;
int open_pidfd(const char *pidstr)
{
int proc_dir_fd;
- int written;
char proc_dir_name[32];
pid_t target;
return -ENOENT;
/* max string length is 6 + 10 + 1 + 1 = 18, allocate 32 bytes */
- written = snprintf(proc_dir_name, sizeof(proc_dir_name), "/proc/%u/",
- target);
- if ((written <= 0) || ((size_t)written >= sizeof(proc_dir_name))) {
+ if (SNPRINTF(proc_dir_name, "/proc/%u/", target) == -1) {
fprintf(stderr, "snprintf of proc path failed for %u: %s\n",
target, strerror(errno));
return -EINVAL;
#include "defines.h"
#include "prototypes.h"
#include "getdef.h"
+#include "string/sprintf.h"
+
+
/*
* hushed - determine if a user receives login messages
*
*/
bool hushed (const char *username)
{
- struct passwd *pw;
- const char *hushfile;
- char buf[BUFSIZ];
- bool found;
- FILE *fp;
+ bool found;
+ char buf[BUFSIZ];
+ FILE *fp;
+ const char *hushfile;
+ struct passwd *pw;
/*
* Get the name of the file to use. If this option is not
*/
if (hushfile[0] != '/') {
- (void) snprintf (buf, sizeof (buf), "%s/%s", pw->pw_dir, hushfile);
+ SNPRINTF(buf, "%s/%s", pw->pw_dir, hushfile);
return (access (buf, F_OK) == 0);
}
#include "../libsubid/subid.h"
#include "shadowlog_internal.h"
#include "shadowlog.h"
+#include "string/sprintf.h"
+
#define NSSWITCH "/etc/nsswitch.conf"
// nsswitch_path is an argument only to support testing.
void nss_init(const char *nsswitch_path) {
char *line = NULL, *p, *token, *saveptr;
- char libname[65];
+ char libname[64];
FILE *nssfp = NULL;
FILE *shadow_logfd = log_get_logfd();
void *h;
fprintf(shadow_logfd, "Using files\n");
goto null_subid;
}
- snprintf(libname, 64, "libsubid_%s.so", token);
+ SNPRINTF(libname, "libsubid_%s.so", token);
h = dlopen(libname, RTLD_LAZY);
if (!h) {
fprintf(shadow_logfd, "Error opening %s: %s\n", libname, dlerror());
#include "prototypes.h"
#include "pwauth.h"
#include "getdef.h"
+#include "string/sprintf.h"
#ifdef SKEY
#include <skey.h>
int reason,
/*@null@*/const char *input)
{
- char prompt[1024];
- char *clear = NULL;
- const char *cp;
- const char *encrypted;
- int retval;
+ int retval;
+ char prompt[1024];
+ char *clear = NULL;
+ const char *cp;
+ const char *encrypted;
#ifdef SKEY
- bool use_skey = false;
- char challenge_info[40];
- struct skey skey;
+ bool use_skey = false;
+ char challenge_info[40];
+ struct skey skey;
#endif
/*
}
#endif
- snprintf (prompt, sizeof prompt, cp, user);
+ SNPRINTF(prompt, cp, user);
clear = agetpass(prompt);
input = (clear == NULL) ? "" : clear;
}
#include <errno.h>
#include "prototypes.h"
#include "defines.h"
+#include "string/sprintf.h"
+
+
extern char **newenvp;
extern size_t newenvc;
* don't want to tell us what it is themselves.
*/
if (arg == NULL) {
- snprintf(arg0, sizeof(arg0), "-%s", Basename(file));
+ SNPRINTF(arg0, "-%s", Basename(file));
arg = arg0;
}
* how to execute this stupid shell, so I might as well give
* up in disgust ...
*/
- (void) snprintf (arg0, sizeof arg0, _("Cannot execute %s"), file);
+ SNPRINTF(arg0, _("Cannot execute %s"), file);
errno = err;
perror (arg0);
return err;
#include <fcntl.h>
#include "alloc.h"
+#include "string/sprintf.h"
+
#define ID_SIZE 31
* (It may be specified as literal UID or as another username which
* has the same UID as the username we are looking for.)
*/
- struct passwd *pwd;
- uid_t owner_uid;
char owner_uid_string[33];
- int ret;
+ uid_t owner_uid;
+ struct passwd *pwd;
/* Get UID of the username we are looking for */
return NULL;
}
owner_uid = pwd->pw_uid;
- ret = snprintf(owner_uid_string, sizeof (owner_uid_string), "%lu", (unsigned long)owner_uid);
- if (ret < 0 || (size_t)ret >= sizeof (owner_uid_string))
+ if (SNPRINTF(owner_uid_string, "%lu", (unsigned long) owner_uid) == -1)
return NULL;
commonio_rewind(db);
#include "subordinateio.h"
#endif /* ENABLE_SUBIDS */
#include "shadowlog.h"
+#include "string/sprintf.h"
+
#ifdef __linux__
static int check_status (const char *name, const char *sname, uid_t uid);
static int different_namespace (const char *sname)
{
/* 41: /proc/xxxxxxxxxx/task/xxxxxxxxxx/ns/user + \0 */
- char path[41];
- char buf[512], buf2[512];
- ssize_t llen1, llen2;
+ char path[41];
+ char buf[512], buf2[512];
+ ssize_t llen1, llen2;
- snprintf (path, 41, "/proc/%s/ns/user", sname);
+ SNPRINTF(path, "/proc/%s/ns/user", sname);
if ((llen1 = readlink (path, buf, sizeof(buf))) == -1)
return 0;
static int check_status (const char *name, const char *sname, uid_t uid)
{
/* 40: /proc/xxxxxxxxxx/task/xxxxxxxxxx/status + \0 */
- char status[40];
- char line[1024];
- FILE *sfile;
+ char status[40];
+ char line[1024];
+ FILE *sfile;
- snprintf (status, 40, "/proc/%s/status", sname);
+ SNPRINTF(status, "/proc/%s/status", sname);
sfile = fopen (status, "r");
if (NULL == sfile) {
}
/* Check if the process is in our chroot */
- snprintf(root_path, sizeof(root_path), "/proc/%lu/root", (unsigned long) pid);
+ SNPRINTF(root_path, "/proc/%lu/root", (unsigned long) pid);
if (stat (root_path, &sbroot_process) != 0) {
continue;
}
return 1;
}
- snprintf(task_path, sizeof(task_path), "/proc/%lu/task", (unsigned long) pid);
+ SNPRINTF(task_path, "/proc/%lu/task", (unsigned long) pid);
task_dir = opendir (task_path);
if (task_dir != NULL) {
while ((ent = readdir (task_dir)) != NULL) {
#include "pwio.h"
#include "shadowio.h"
#include "shadowlog.h"
+#include "string/sprintf.h"
#include "string/strtcpy.h"
#ifdef WITH_TCB
#include "tcbfuncs.h"
/*@-exitarg@*/
#include "exitcodes.h"
+
/*
* Global variables
*/
*/
static int new_fields (void)
{
- char buf[200];
+ char buf[200];
(void) puts (_("Enter the new value, or press ENTER for the default"));
(void) puts ("");
- (void) snprintf (buf, sizeof buf, "%ld", mindays);
+ SNPRINTF(buf, "%ld", mindays);
change_field (buf, sizeof buf, _("Minimum Password Age"));
if ( (getlong (buf, &mindays) == 0)
|| (mindays < -1)) {
return 0;
}
- (void) snprintf (buf, sizeof buf, "%ld", maxdays);
+ SNPRINTF(buf, "%ld", maxdays);
change_field (buf, sizeof buf, _("Maximum Password Age"));
if ( (getlong (buf, &maxdays) == 0)
|| (maxdays < -1)) {
}
}
- (void) snprintf (buf, sizeof buf, "%ld", warndays);
+ SNPRINTF(buf, "%ld", warndays);
change_field (buf, sizeof buf, _("Password Expiration Warning"));
if ( (getlong (buf, &warndays) == 0)
|| (warndays < -1)) {
return 0;
}
- (void) snprintf (buf, sizeof buf, "%ld", inactdays);
+ SNPRINTF(buf, "%ld", inactdays);
change_field (buf, sizeof buf, _("Password Inactive"));
if ( (getlong (buf, &inactdays) == 0)
|| (inactdays < -1)) {
/*@-exitarg@*/
#include "exitcodes.h"
#include "shadowlog.h"
+#include "string/sprintf.h"
#include "string/strtcpy.h"
+
/*
* Global variables.
*/
*/
int main (int argc, char **argv)
{
- const struct passwd *pw; /* password file entry */
- char new_gecos[BUFSIZ]; /* buffer for new GECOS fields */
- char *user;
+ char new_gecos[BUFSIZ];
+ char *user;
+ const struct passwd *pw;
/*
* Get the program name. The program name is used as a
fprintf (stderr, _("%s: fields too long\n"), Prog);
fail_exit (E_NOPERM);
}
- snprintf (new_gecos, sizeof new_gecos, "%s,%s,%s,%s%s%s",
- fullnm, roomno, workph, homeph,
- ('\0' != slop[0]) ? "," : "", slop);
+ SNPRINTF(new_gecos, "%s,%s,%s,%s%s%s",
+ fullnm, roomno, workph, homeph,
+ ('\0' != slop[0]) ? "," : "", slop);
/* Rewrite the user's gecos in the passwd file */
update_gecos (user, new_gecos);
/*@-exitarg@*/
#include "exitcodes.h"
#include "shadowlog.h"
+#include "string/sprintf.h"
#include "string/strtcpy.h"
+
/*
* Global variables
*/
#ifdef WITH_AUDIT
char buf[1024];
#endif
+
if (aflg) {
SYSLOG ((LOG_ERR,
"%s failed to add user %s to group %s%s",
myname, user, group, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "%s failed to add user %s to group %s%s",
+ SNPRINTF(buf, "%s failed to add user %s to group %s%s",
myname, user, group, suffix);
audit_logger (AUDIT_USER_ACCT, Prog,
buf,
"%s failed to remove user %s from group %s%s",
myname, user, group, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "%s failed to remove user %s from group %s%s",
+ SNPRINTF(buf, "%s failed to remove user %s from group %s%s",
myname, user, group, suffix);
audit_logger (AUDIT_USER_ACCT, Prog,
buf,
"%s failed to remove password of group %s%s",
myname, group, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "%s failed to remove password of group %s%s",
+ SNPRINTF(buf, "%s failed to remove password of group %s%s",
myname, group, suffix);
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
buf,
"%s failed to restrict access to group %s%s",
myname, group, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "%s failed to restrict access to group %s%s",
+ SNPRINTF(buf, "%s failed to restrict access to group %s%s",
myname, group, suffix);
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
buf,
"%s failed to set the administrators of group %s to %s%s",
myname, group, admins, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "%s failed to set the administrators of group %s to %s%s",
+ SNPRINTF(buf, "%s failed to set the administrators of group %s to %s%s",
myname, group, admins, suffix);
audit_logger (AUDIT_USER_ACCT, Prog,
buf,
"%s failed to set the members of group %s to %s%s",
myname, group, members, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "%s failed to set the members of group %s to %s%s",
+ SNPRINTF(buf, "%s failed to set the members of group %s to %s%s",
myname, group, members, suffix);
audit_logger (AUDIT_USER_ACCT, Prog,
buf,
"%s failed to change password of group %s%s",
myname, group, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "%s failed to change password of group %s%s",
+ SNPRINTF(buf, "%s failed to change password of group %s%s",
myname, group, suffix);
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
buf,
{
char buf[1024];
- snprintf(buf, sizeof(buf), " in %s", gr_dbname());
+ SNPRINTF(buf, " in %s", gr_dbname());
log_gpasswd_failure (buf);
}
{
char buf[1024];
- snprintf(buf, sizeof(buf), " in %s", sgr_dbname());
+ SNPRINTF(buf, " in %s", sgr_dbname());
log_gpasswd_failure (buf);
}
#endif /* SHADOWGRP */
#ifdef WITH_AUDIT
char buf[1024];
#endif
+
if (aflg) {
SYSLOG ((LOG_INFO,
"user %s added by %s to group %s%s",
user, myname, group, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "user %s added by %s to group %s%s",
+ SNPRINTF(buf, "user %s added by %s to group %s%s",
user, myname, group, suffix);
audit_logger (AUDIT_USER_ACCT, Prog,
buf,
"user %s removed by %s from group %s%s",
user, myname, group, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "user %s removed by %s from group %s%s",
+ SNPRINTF(buf, "user %s removed by %s from group %s%s",
user, myname, group, suffix);
audit_logger (AUDIT_USER_ACCT, Prog,
buf,
"password of group %s removed by %s%s",
group, myname, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "password of group %s removed by %s%s",
+ SNPRINTF(buf, "password of group %s removed by %s%s",
group, myname, suffix);
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
buf,
"access to group %s restricted by %s%s",
group, myname, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "access to group %s restricted by %s%s",
+ SNPRINTF(buf, "access to group %s restricted by %s%s",
group, myname, suffix);
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
buf,
"administrators of group %s set by %s to %s%s",
group, myname, admins, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "administrators of group %s set by %s to %s%s",
+ SNPRINTF(buf, "administrators of group %s set by %s to %s%s",
group, myname, admins, suffix);
audit_logger (AUDIT_USER_ACCT, Prog,
buf,
"members of group %s set by %s to %s%s",
group, myname, members, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "members of group %s set by %s to %s%s",
+ SNPRINTF(buf, "members of group %s set by %s to %s%s",
group, myname, members, suffix);
audit_logger (AUDIT_USER_ACCT, Prog,
buf,
"password of group %s changed by %s%s",
group, myname, suffix));
#ifdef WITH_AUDIT
- snprintf(buf, sizeof(buf),
- "password of group %s changed by %s%s",
+ SNPRINTF(buf, "password of group %s changed by %s%s",
group, myname, suffix);
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
buf,
{
char buf[1024];
- snprintf(buf, sizeof(buf), " in %s", gr_dbname());
+ SNPRINTF(buf, " in %s", gr_dbname());
log_gpasswd_success (buf);
}
/*@-exitarg@*/
#include "exitcodes.h"
#include "shadowlog.h"
+#include "string/sprintf.h"
#include "string/strtcpy.h"
#ifdef USE_PAM
*/
int main (int argc, char **argv)
{
- const char *tmptty;
- char tty[BUFSIZ];
- unsigned int delay;
- unsigned int retries;
- bool subroot = false;
- int err;
- unsigned int timeout;
- const char *cp;
- const char *tmp;
- char fromhost[512];
- struct passwd *pwd = NULL;
- char **envp = environ;
- const char *failent_user;
- char *host = NULL;
+ int err;
+ bool subroot = false;
+ char **envp = environ;
+ char *host = NULL;
+ char tty[BUFSIZ];
+ char fromhost[512];
+ const char *failent_user;
+ const char *tmptty;
+ const char *cp;
+ const char *tmp;
+ unsigned int delay;
+ unsigned int retries;
+ unsigned int timeout;
+ struct passwd *pwd = NULL;
#if defined(USE_PAM)
- int retcode;
- pid_t child;
- char *pam_user = NULL;
+ int retcode;
+ char *pam_user = NULL;
+ pid_t child;
#else
bool is_console;
struct spwd *spwd = NULL;
# if defined(ENABLE_LASTLOG)
- char ptime[80];
+ char ptime[80];
# endif
#endif
#if defined(RLOGIN)
- char term[128] = "";
+ char term[128] = "";
#endif
/*
}
if ('\0' != *cp) {
- snprintf (fromhost, sizeof fromhost,
- " on '%.100s' from '%.200s'", tty, cp);
+ SNPRINTF(fromhost, " on '%.100s' from '%.200s'", tty, cp);
} else {
- snprintf (fromhost, sizeof fromhost,
- " on '%.100s'", tty);
+ SNPRINTF(fromhost, " on '%.100s'", tty);
}
free(host);
top:
/* only allow ALARM sec. for login */
timeout = getdef_unum ("LOGIN_TIMEOUT", ALARM);
- snprintf (tmsg, sizeof tmsg,
- _("\nLogin timed out after %u seconds.\n"), timeout);
+ SNPRINTF(tmsg, _("\nLogin timed out after %u seconds.\n"), timeout);
(void) signal (SIGALRM, alarm_handler);
if (timeout > 0) {
(void) alarm (timeout);
#endif
/* if fflg, then the user has already been authenticated */
if (!fflg) {
- unsigned int failcount = 0;
- char hostn[256];
- char loginprompt[256]; /* That's one hell of a prompt :) */
+ char hostn[256];
+ char loginprompt[256]; //That's one hell of a prompt :)
+ unsigned int failcount = 0;
/* Make the login prompt look like we want it */
if (gethostname (hostn, sizeof (hostn)) == 0) {
- snprintf (loginprompt,
- sizeof (loginprompt),
- _("%s login: "), hostn);
+ SNPRINTF(loginprompt, _("%s login: "), hostn);
} else {
STRTCPY(loginprompt, _("login: "));
}
/*@-exitarg@*/
#include "exitcodes.h"
#include "shadowlog.h"
+#include "string/sprintf.h"
+
/*
* Global variables
if (grp->gr_passwd[0] == '\0' ||
strcmp (cpasswd, grp->gr_passwd) != 0) {
#ifdef WITH_AUDIT
- snprintf (audit_buf, sizeof(audit_buf),
- "authentication new-gid=%lu",
- (unsigned long) grp->gr_gid);
+ SNPRINTF(audit_buf, "authentication new-gid=%lu",
+ (unsigned long) grp->gr_gid);
audit_logger (AUDIT_GRP_AUTH, Prog,
audit_buf, NULL, getuid (), 0);
#endif
goto failure;
}
#ifdef WITH_AUDIT
- snprintf (audit_buf, sizeof(audit_buf),
- "authentication new-gid=%lu",
- (unsigned long) grp->gr_gid);
+ SNPRINTF(audit_buf, "authentication new-gid=%lu",
+ (unsigned long) grp->gr_gid);
audit_logger (AUDIT_GRP_AUTH, Prog,
audit_buf, NULL, getuid (), 1);
#endif
closelog ();
#ifdef WITH_AUDIT
if (groupname) {
- snprintf (audit_buf, sizeof(audit_buf),
- "changing new-group=%s", groupname);
+ SNPRINTF(audit_buf, "changing new-group=%s", groupname);
audit_logger (AUDIT_CHGRP_ID, Prog,
audit_buf, NULL, getuid (), 0);
} else {
is_newgrp ? "newgrp" : "sg", strerror (errno));
#ifdef WITH_AUDIT
if (group) {
- snprintf (audit_buf, sizeof(audit_buf),
- "changing new-group=%s", group);
+ SNPRINTF(audit_buf,
+ "changing new-group=%s", group);
audit_logger (AUDIT_CHGRP_ID, Prog,
audit_buf, NULL, getuid (), 0);
} else {
perror ("getgroups");
#ifdef WITH_AUDIT
if (group) {
- snprintf (audit_buf, sizeof(audit_buf),
- "changing new-group=%s", group);
+ SNPRINTF(audit_buf, "changing new-group=%s", group);
audit_logger (AUDIT_CHGRP_ID, Prog,
audit_buf, NULL, getuid (), 0);
} else {
if (setgid (gid) != 0) {
perror ("setgid");
#ifdef WITH_AUDIT
- snprintf (audit_buf, sizeof(audit_buf),
- "changing new-gid=%lu", (unsigned long) gid);
+ SNPRINTF(audit_buf, "changing new-gid=%lu", (unsigned long) gid);
audit_logger (AUDIT_CHGRP_ID, Prog,
audit_buf, NULL, getuid (), 0);
#endif
if (setuid (getuid ()) != 0) {
perror ("setuid");
#ifdef WITH_AUDIT
- snprintf (audit_buf, sizeof(audit_buf),
- "changing new-gid=%lu", (unsigned long) gid);
+ SNPRINTF(audit_buf, "changing new-gid=%lu", (unsigned long) gid);
audit_logger (AUDIT_CHGRP_ID, Prog,
audit_buf, NULL, getuid (), 0);
#endif
closelog ();
execl (SHELL, "sh", "-c", command, (char *) NULL);
#ifdef WITH_AUDIT
- snprintf (audit_buf, sizeof(audit_buf),
- "changing new-gid=%lu", (unsigned long) gid);
+ SNPRINTF(audit_buf, "changing new-gid=%lu", (unsigned long) gid);
audit_logger (AUDIT_CHGRP_ID, Prog,
audit_buf, NULL, getuid (), 0);
#endif
}
#ifdef WITH_AUDIT
- snprintf (audit_buf, sizeof(audit_buf), "changing new-gid=%lu",
- (unsigned long) gid);
+ SNPRINTF(audit_buf, "changing new-gid=%lu", (unsigned long) gid);
audit_logger (AUDIT_CHGRP_ID, Prog,
audit_buf, NULL, getuid (), 1);
#endif
closelog ();
#ifdef WITH_AUDIT
if (NULL != group) {
- snprintf (audit_buf, sizeof(audit_buf),
- "changing new-group=%s", group);
+ SNPRINTF(audit_buf, "changing new-group=%s", group);
audit_logger (AUDIT_CHGRP_ID, Prog,
audit_buf, NULL, getuid (), 0);
} else {
#endif /* ENABLE_SUBIDS */
#include "chkname.h"
#include "shadowlog.h"
+#include "string/sprintf.h"
+
/*
* Global variables
if (argv[optind] != NULL) {
if (freopen (argv[optind], "r", stdin) == NULL) {
- char buf[BUFSIZ];
- snprintf (buf, sizeof buf, "%s: %s", Prog, argv[1]);
+ char buf[BUFSIZ];
+
+ SNPRINTF(buf, "%s: %s", Prog, argv[1]);
perror (buf);
fail_exit (EXIT_FAILURE);
}
/*@-exitarg@*/
#include "exitcodes.h"
#include "shadowlog.h"
+#include "string/sprintf.h"
#include "string/strtcpy.h"
+
/*
* Global variables
*/
stderr);
(void) kill (-pid_child, caught);
- snprintf (kill_msg, sizeof kill_msg, _(" ...killed.\n"));
- snprintf (wait_msg, sizeof wait_msg, _(" ...waiting for child to terminate.\n"));
+ SNPRINTF(kill_msg, _(" ...killed.\n"));
+ SNPRINTF(wait_msg, _(" ...waiting for child to terminate.\n"));
/* Any signals other than SIGCHLD and SIGALRM will no longer have any effect,
* so it's time to block all of them. */
static int set_defaults (void)
{
int ofd;
- int wlen;
int ret = -1;
bool out_group = false;
bool out_groups = false;
/*
* Rename the current default file to its backup name.
*/
- wlen = snprintf (buf, sizeof buf, "%s-", default_file);
- assert (wlen < (int) sizeof buf);
+ assert(SNPRINTF(buf, "%s-", default_file) != -1);
unlink (buf);
if ((link (default_file, buf) != 0) && (ENOENT != errno)) {
int err = errno;
/* FIXME: the following should have variable sizes */
char filebackup[1024], fileedit[1024];
- snprintf (filebackup, sizeof filebackup, "%s-", file);
+ SNPRINTF(filebackup, "%s-", file);
#ifdef WITH_TCB
if (tcb_mode) {
if ( (mkdir (TCB_DIR "/" SHADOWTCB_SCRATCHDIR, 0700) != 0)
if (shadowtcb_drop_priv () == SHADOWTCB_FAILURE) {
vipwexit (_("failed to drop privileges"), errno, 1);
}
- snprintf (fileedit, sizeof fileedit,
- TCB_DIR "/" SHADOWTCB_SCRATCHDIR "/.vipw.shadow.%s",
- user);
+ SNPRINTF(fileedit,
+ TCB_DIR "/" SHADOWTCB_SCRATCHDIR "/.vipw.shadow.%s",
+ user);
} else {
#endif /* WITH_TCB */
- snprintf (fileedit, sizeof fileedit, "%s.edit", file);
+ SNPRINTF(fileedit, "%s.edit", file);
#ifdef WITH_TCB
}
#endif /* WITH_TCB */