]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
tools/bootconfig: fix fd leak in load_xbc_file() on fstat failure
authorJosh Law <objecting@objecting.org>
Wed, 18 Mar 2026 23:43:06 +0000 (08:43 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Mar 2026 10:08:57 +0000 (11:08 +0100)
[ Upstream commit 3b2c2ab4ceb82af484310c3087541eab00ea288b ]

If fstat() fails after open() succeeds, the function returns without
closing the file descriptor. Also preserve errno across close(), since
close() may overwrite it before the error is returned.

Link: https://lore.kernel.org/all/20260318155847.78065-3-objecting@objecting.org/
Fixes: 950313ebf79c ("tools: bootconfig: Add bootconfig command")
Signed-off-by: Josh Law <objecting@objecting.org>
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/bootconfig/main.c

index 8a48cc2536f566307a3d869c9ad9fe4c6e47fb88..32cf48f2da9a1da2ea2da749923847163b9a6c37 100644 (file)
@@ -157,8 +157,11 @@ static int load_xbc_file(const char *path, char **buf)
        if (fd < 0)
                return -errno;
        ret = fstat(fd, &stat);
-       if (ret < 0)
-               return -errno;
+       if (ret < 0) {
+               ret = -errno;
+               close(fd);
+               return ret;
+       }
 
        ret = load_xbc_fd(fd, buf, stat.st_size);