]> granicus.if.org Git - sudo/commitdiff
Avoid some PVS-Studio false positives.
authorTodd C. Miller <Todd.Miller@sudo.ws>
Fri, 19 Oct 2018 19:35:20 +0000 (13:35 -0600)
committerTodd C. Miller <Todd.Miller@sudo.ws>
Fri, 19 Oct 2018 19:35:20 +0000 (13:35 -0600)
lib/util/key_val.c
plugins/sudoers/iolog_path.c
plugins/sudoers/linux_audit.c
plugins/sudoers/toke_util.c
src/preserve_fds.c

index 2477b7c2b0e4f72040f3ae1d4cbccd6e4ae136b0..8ab8c24e05fc4a99823a66d1707ed156265007e3 100644 (file)
@@ -44,7 +44,7 @@ sudo_new_key_val_v1(const char *key, const char *val)
     debug_decl(sudo_new_key_val, SUDO_DEBUG_UTIL)
 
     cp = str = malloc(key_len + 1 + val_len + 1);
-    if (str != NULL) {
+    if (cp != NULL) {
        memcpy(cp, key, key_len);
        cp += key_len;
        *cp++ = '=';
index 16a453e6aaa66816bb2d116e189fc10671f17491..0758512bfed2945ae5e5cd854f554727d53e03ca 100644 (file)
@@ -162,13 +162,14 @@ expand_iolog_path(const char *prefix, const char *dir, const char *file,
     /* Expanded path must be <= PATH_MAX */
     if (prefix != NULL)
        prelen = strlen(prefix);
-    dst = path = malloc(prelen + PATH_MAX);
+    path = malloc(prelen + PATH_MAX);
     if (path == NULL) {
        sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
        goto bad;
     }
     *path = '\0';
     pathend = path + prelen + PATH_MAX;
+    dst = path;
 
     /* Copy prefix, if present. */
     if (prefix != NULL) {
index 5923396dc9d202da4b97c6ef10847c9b6513e305..10ddb3ef74cd97d687390ee9fe0a7c3a1cc54394 100644 (file)
@@ -71,12 +71,12 @@ linux_audit_command(char *argv[], int result)
     /* Convert argv to a flat string. */
     for (size = 0, av = argv; *av != NULL; av++)
        size += strlen(*av) + 1;
-    command = cp = malloc(size);
+    command = malloc(size);
     if (command == NULL) {
        sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
        goto done;
     }
-    for (av = argv; *av != NULL; av++) {
+    for (av = argv, cp = command; *av != NULL; av++) {
        n = strlcpy(cp, *av, size - (cp - command));
        if (n >= size - (cp - command)) {
            sudo_warnx(U_("internal error, %s overflow"), __func__);
index 5e5e70f53e6a57f27bfd73c28986ca516a74720e..d6754b469d147910414024cfc33460c11ce81a19 100644 (file)
@@ -104,11 +104,12 @@ fill_cmnd(const char *src, size_t len)
     arg_len = arg_size = 0;
 
     dst = sudoerslval.command.cmnd = malloc(len + 1);
-    if (sudoerslval.command.cmnd == NULL) {
+    if (dst == NULL) {
        sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
        sudoerserror(NULL);
        debug_return_bool(false);
     }
+    sudoerslval.command.args = NULL;
 
     /* Copy the string and collapse any escaped sudo-specific characters. */
     for (i = 0; i < len; i++) {
@@ -119,7 +120,6 @@ fill_cmnd(const char *src, size_t len)
     }
     *dst = '\0';
 
-    sudoerslval.command.args = NULL;
     debug_return_bool(true);
 }
 
index c782f0712bc0180cf4e746dfd5f647962a359d56..b92ed5fea8fbe71a2f31adb5b5a6141e57d7edd4 100644 (file)
@@ -59,16 +59,18 @@ add_preserved_fd(struct preserved_fd_list *pfds, int fd)
            sudo_debug_printf(SUDO_DEBUG_DEBUG|SUDO_DEBUG_LINENO,
                "fd %d already preserved", fd);
            free(pfd_new);
+           pfd_new = NULL;
            break;
        }
        if (fd < pfd->highfd) {
            TAILQ_INSERT_BEFORE(pfd, pfd_new, entries);
            sudo_debug_printf(SUDO_DEBUG_DEBUG|SUDO_DEBUG_LINENO,
                "preserving fd %d", fd);
+           pfd_new = NULL;
            break;
        }
     }
-    if (pfd == NULL) {
+    if (pfd_new != NULL) {
        TAILQ_INSERT_TAIL(pfds, pfd_new, entries);
        sudo_debug_printf(SUDO_DEBUG_DEBUG|SUDO_DEBUG_LINENO,
            "preserving fd %d", fd);