]> granicus.if.org Git - shadow/commitdiff
Fix some issues found in Coverity scan.
authorTomas Mraz <tmraz@fedoraproject.org>
Wed, 10 Oct 2018 10:22:04 +0000 (12:22 +0200)
committerTomas Mraz <tmraz@fedoraproject.org>
Wed, 10 Oct 2018 10:22:04 +0000 (12:22 +0200)
lib/commonio.c
lib/spawn.c
libmisc/console.c

index d06b8e7dc94e1a5a0ed9eae6a5660e561238f509..52a360cf14ef8369d0c620a813d24890fc44bed4 100644 (file)
@@ -379,7 +379,7 @@ int commonio_lock_nowait (struct commonio_db *db, bool log)
        char* lock = NULL;
        size_t lock_file_len;
        size_t file_len;
-       int err;
+       int err = 0;
 
        if (db->locked) {
                return 1;
@@ -388,12 +388,10 @@ int commonio_lock_nowait (struct commonio_db *db, bool log)
        lock_file_len = strlen(db->filename) + 6; /* sizeof ".lock" */
        file = (char*)malloc(file_len);
        if(file == NULL) {
-               err = ENOMEM;
                goto cleanup_ENOMEM;
        }
        lock = (char*)malloc(lock_file_len);
        if(lock == NULL) {
-               err = ENOMEM;
                goto cleanup_ENOMEM;
        }
        snprintf (file, file_len, "%s.%lu",
index da984019eaeed94c66dae32bdf4ac156d84f6164..fc4ad95c7c429aeac246e0523073e9e82cf2a8df 100644 (file)
@@ -69,7 +69,7 @@ int run_command (const char *cmd, const char *argv[],
        do {
                wpid = waitpid (pid, status, 0);
        } while (   ((pid_t)-1 == wpid && errno == EINTR)
-                || (wpid != pid));
+                || ((pid_t)-1 != wpid && wpid != pid));
 
        if ((pid_t)-1 == wpid) {
                fprintf (stderr, "%s: waitpid (status: %d): %s\n",
index 70d13903ec6768021e1eb5953daba5a2c62a417e..cb74c2f9c7c4611fbf9a5e360ec0aa25b4903225 100644 (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)
 {
        FILE *fp;
-       char buf[200], *s;
+       char buf[1024], *s;
        const char *cons;
 
        /*
@@ -70,7 +70,8 @@ static bool is_listed (const char *cfgin, const char *tty, bool def)
 
        if (*cons != '/') {
                char *pbuf;
-               strcpy (buf, cons);
+               strncpy (buf, cons, sizeof (buf));
+               buf[sizeof (buf) - 1] = '\0';
                pbuf = &buf[0];
                while ((s = strtok (pbuf, ":")) != NULL) {
                        if (strcmp (s, tty) == 0) {