Merge pull request #133 from t8m/trivial

Fix some issues found in Coverity scan.
This commit is contained in:
Serge Hallyn 2018-10-23 22:21:12 -05:00 committed by GitHub
commit 83f1380600
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 42 additions and 27 deletions

View File

@ -380,7 +380,7 @@ int commonio_lock_nowait (struct commonio_db *db, bool log)
char* lock = NULL; char* lock = NULL;
size_t lock_file_len; size_t lock_file_len;
size_t file_len; size_t file_len;
int err; int err = 0;
if (db->locked) { if (db->locked) {
return 1; return 1;
@ -389,12 +389,10 @@ int commonio_lock_nowait (struct commonio_db *db, bool log)
lock_file_len = strlen(db->filename) + 6; /* sizeof ".lock" */ lock_file_len = strlen(db->filename) + 6; /* sizeof ".lock" */
file = (char*)malloc(file_len); file = (char*)malloc(file_len);
if(file == NULL) { if(file == NULL) {
err = ENOMEM;
goto cleanup_ENOMEM; goto cleanup_ENOMEM;
} }
lock = (char*)malloc(lock_file_len); lock = (char*)malloc(lock_file_len);
if(lock == NULL) { if(lock == NULL) {
err = ENOMEM;
goto cleanup_ENOMEM; goto cleanup_ENOMEM;
} }
snprintf (file, file_len, "%s.%lu", snprintf (file, file_len, "%s.%lu",

View File

@ -69,7 +69,7 @@ int run_command (const char *cmd, const char *argv[],
do { do {
wpid = waitpid (pid, status, 0); wpid = waitpid (pid, status, 0);
} while ( ((pid_t)-1 == wpid && errno == EINTR) } while ( ((pid_t)-1 == wpid && errno == EINTR)
|| (wpid != pid)); || ((pid_t)-1 != wpid && wpid != pid));
if ((pid_t)-1 == wpid) { if ((pid_t)-1 == wpid) {
fprintf (stderr, "%s: waitpid (status: %d): %s\n", fprintf (stderr, "%s: waitpid (status: %d): %s\n",

View File

@ -50,7 +50,7 @@ static bool is_listed (const char *cfgin, const char *tty, bool def);
static bool is_listed (const char *cfgin, const char *tty, bool def) static bool is_listed (const char *cfgin, const char *tty, bool def)
{ {
FILE *fp; FILE *fp;
char buf[200], *s; char buf[1024], *s;
const char *cons; const char *cons;
/* /*
@ -70,7 +70,8 @@ static bool is_listed (const char *cfgin, const char *tty, bool def)
if (*cons != '/') { if (*cons != '/') {
char *pbuf; char *pbuf;
strcpy (buf, cons); strncpy (buf, cons, sizeof (buf));
buf[sizeof (buf) - 1] = '\0';
pbuf = &buf[0]; pbuf = &buf[0];
while ((s = strtok (pbuf, ":")) != NULL) { while ((s = strtok (pbuf, ":")) != NULL) {
if (strcmp (s, tty) == 0) { if (strcmp (s, tty) == 0) {

View File

@ -344,7 +344,7 @@ static void fail_exit (int code)
static void get_defaults (void) static void get_defaults (void)
{ {
FILE *fp; FILE *fp;
char* default_file = USER_DEFAULTS_FILE; char *default_file = USER_DEFAULTS_FILE;
char buf[1024]; char buf[1024];
char *cp; char *cp;
@ -354,6 +354,8 @@ static void get_defaults (void)
len = strlen(prefix) + strlen(USER_DEFAULTS_FILE) + 2; len = strlen(prefix) + strlen(USER_DEFAULTS_FILE) + 2;
default_file = malloc(len); default_file = malloc(len);
if (default_file == NULL)
return;
wlen = snprintf(default_file, len, "%s/%s", prefix, USER_DEFAULTS_FILE); wlen = snprintf(default_file, len, "%s/%s", prefix, USER_DEFAULTS_FILE);
assert (wlen == (int) len -1); assert (wlen == (int) len -1);
} }
@ -364,7 +366,7 @@ static void get_defaults (void)
fp = fopen (default_file, "r"); fp = fopen (default_file, "r");
if (NULL == fp) { if (NULL == fp) {
return; goto getdef_err;
} }
/* /*
@ -475,7 +477,7 @@ static void get_defaults (void)
} }
} }
(void) fclose (fp); (void) fclose (fp);
getdef_err:
if(prefix[0]) { if(prefix[0]) {
free(default_file); free(default_file);
} }
@ -510,8 +512,8 @@ static int set_defaults (void)
FILE *ifp; FILE *ifp;
FILE *ofp; FILE *ofp;
char buf[1024]; char buf[1024];
char* new_file = NEW_USER_FILE; char *new_file = NULL;
char* default_file = USER_DEFAULTS_FILE; char *default_file = USER_DEFAULTS_FILE;
char *cp; char *cp;
int ofd; int ofd;
int wlen; int wlen;
@ -522,17 +524,30 @@ static int set_defaults (void)
bool out_shell = false; bool out_shell = false;
bool out_skel = false; bool out_skel = false;
bool out_create_mail_spool = false; bool out_create_mail_spool = false;
if(prefix[0]) {
size_t len; size_t len;
int ret = -1;
len = strlen(prefix) + strlen(NEW_USER_FILE) + 2; len = strlen(prefix) + strlen(NEW_USER_FILE) + 2;
new_file = malloc(len); new_file = malloc(len);
wlen = snprintf(new_file, len, "%s/%s", prefix, NEW_USER_FILE); if (new_file == NULL) {
assert (wlen == (int) len -1); fprintf (stderr,
_("%s: cannot create new defaults file: %s\n"),
Prog, strerror(errno));
return -1;
}
wlen = snprintf(new_file, len, "%s%s%s", prefix, prefix[0]?"/":"", NEW_USER_FILE);
assert (wlen <= (int) len -1);
if(prefix[0]) {
len = strlen(prefix) + strlen(USER_DEFAULTS_FILE) + 2; len = strlen(prefix) + strlen(USER_DEFAULTS_FILE) + 2;
default_file = malloc(len); default_file = malloc(len);
if (default_file == NULL) {
fprintf (stderr,
_("%s: cannot create new defaults file: %s\n"),
Prog, strerror(errno));
goto setdef_err;
}
wlen = snprintf(default_file, len, "%s/%s", prefix, USER_DEFAULTS_FILE); wlen = snprintf(default_file, len, "%s/%s", prefix, USER_DEFAULTS_FILE);
assert (wlen == (int) len -1); assert (wlen == (int) len -1);
} }
@ -545,7 +560,7 @@ static int set_defaults (void)
fprintf (stderr, fprintf (stderr,
_("%s: cannot create new defaults file\n"), _("%s: cannot create new defaults file\n"),
Prog); Prog);
return -1; goto setdef_err;
} }
ofp = fdopen (ofd, "w"); ofp = fdopen (ofd, "w");
@ -553,7 +568,7 @@ static int set_defaults (void)
fprintf (stderr, fprintf (stderr,
_("%s: cannot open new defaults file\n"), _("%s: cannot open new defaults file\n"),
Prog); Prog);
return -1; goto setdef_err;
} }
/* /*
@ -580,7 +595,7 @@ static int set_defaults (void)
_("%s: line too long in %s: %s..."), _("%s: line too long in %s: %s..."),
Prog, default_file, buf); Prog, default_file, buf);
(void) fclose (ifp); (void) fclose (ifp);
return -1; goto setdef_err;
} }
} }
@ -644,7 +659,7 @@ static int set_defaults (void)
|| (fsync (fileno (ofp)) != 0) || (fsync (fileno (ofp)) != 0)
|| (fclose (ofp) != 0)) { || (fclose (ofp) != 0)) {
unlink (new_file); unlink (new_file);
return -1; goto setdef_err;
} }
/* /*
@ -659,7 +674,7 @@ static int set_defaults (void)
_("%s: Cannot create backup file (%s): %s\n"), _("%s: Cannot create backup file (%s): %s\n"),
Prog, buf, strerror (err)); Prog, buf, strerror (err));
unlink (new_file); unlink (new_file);
return -1; goto setdef_err;
} }
/* /*
@ -670,7 +685,7 @@ static int set_defaults (void)
fprintf (stderr, fprintf (stderr,
_("%s: rename: %s: %s\n"), _("%s: rename: %s: %s\n"),
Prog, new_file, strerror (err)); Prog, new_file, strerror (err));
return -1; goto setdef_err;
} }
#ifdef WITH_AUDIT #ifdef WITH_AUDIT
audit_logger (AUDIT_USYS_CONFIG, Prog, audit_logger (AUDIT_USYS_CONFIG, Prog,
@ -684,13 +699,14 @@ static int set_defaults (void)
(unsigned int) def_group, def_home, def_shell, (unsigned int) def_group, def_home, def_shell,
def_inactive, def_expire, def_template, def_inactive, def_expire, def_template,
def_create_mail_spool)); def_create_mail_spool));
ret = 0;
if(prefix[0]) { setdef_err:
free(new_file); free(new_file);
if(prefix[0]) {
free(default_file); free(default_file);
} }
return 0; return ret;
} }
/* /*