From 786f87fb9cbe082f232cb54a3a3045862bccc5e5 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 11 Nov 2016 10:56:25 +0100 Subject: [PATCH] document-portal: Fail fd validation if we can't open directory We need to check if the open succeeded. --- document-portal/xdp-main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/document-portal/xdp-main.c b/document-portal/xdp-main.c index 8a5dd535..847250d8 100644 --- a/document-portal/xdp-main.c +++ b/document-portal/xdp-main.c @@ -387,7 +387,8 @@ validate_parent_dir (const char *path, name = g_path_get_basename (path); dir_fd = open (dirname, O_CLOEXEC | O_PATH); - if (fstat (dir_fd, real_parent_st_buf) < 0 || + if (dir_fd < 0 || + fstat (dir_fd, real_parent_st_buf) < 0 || fstatat (dir_fd, name, &real_st_buf, AT_SYMLINK_NOFOLLOW) < 0 || st_buf->st_dev != real_st_buf.st_dev || st_buf->st_ino != real_st_buf.st_ino)