]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lib/path: fix ul_path_get_dirfd() usage [coverity scan]
authorKarel Zak <kzak@redhat.com>
Wed, 15 May 2019 13:52:54 +0000 (15:52 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 15 May 2019 13:52:54 +0000 (15:52 +0200)
ul_path_get_dirfd() returns negative number on error...

Signed-off-by: Karel Zak <kzak@redhat.com>
lib/path.c

index 968ce9114dfb6c22586964f07a7ca1df7cefd080..9b05f4b98a218e61d9b5cebbfd7a363a193cb9db 100644 (file)
@@ -436,8 +436,12 @@ DIR *ul_path_opendir(struct path_cxt *pc, const char *path)
        if (path)
                fd = ul_path_open(pc, O_RDONLY|O_CLOEXEC, path);
        else if (pc->dir_path) {
+               int dirfd;
+
                DBG(CXT, ul_debugobj(pc, "duplicate dir path"));
-               fd = dup_fd_cloexec(ul_path_get_dirfd(pc), STDERR_FILENO + 1);
+               dirfd = ul_path_get_dirfd(pc);
+               if (dirfd >= 0)
+                       fd = dup_fd_cloexec(dirfd, STDERR_FILENO + 1);
        }
 
        if (fd < 0)