37 lines
1.3 KiB
Diff
37 lines
1.3 KiB
Diff
From e1e32516f98a1f39ce763545de9a8664526d0b8a Mon Sep 17 00:00:00 2001
|
|
From: Lennart Poettering <lennart@poettering.net>
|
|
Date: Thu, 21 Oct 2021 18:07:06 +0200
|
|
Subject: [PATCH] stat-util: specify O_DIRECTORY when reopening dir in
|
|
dir_is_empty_at()
|
|
|
|
That way we can fail earlier if the specified fd is not actually a
|
|
directory.
|
|
|
|
(Also, it's not exactly according to standards to open things without
|
|
either O_RDONLY/O_RDWR...)
|
|
|
|
(cherry picked from commit b9d06522631a22d242374dc44a74c3b6459e3cb3)
|
|
|
|
Conflict:NA
|
|
Reference:https://github.com/systemd/systemd/commit/e1e32516f98a1f39ce763545de9a8664526d0b8a
|
|
---
|
|
src/basic/stat-util.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/src/basic/stat-util.c b/src/basic/stat-util.c
|
|
index 72a7e4a48b..56f7652cec 100644
|
|
--- a/src/basic/stat-util.c
|
|
+++ b/src/basic/stat-util.c
|
|
@@ -79,7 +79,7 @@ int dir_is_empty_at(int dir_fd, const char *path) {
|
|
} else {
|
|
/* Note that DUPing is not enough, as the internal pointer
|
|
* would still be shared and moved by FOREACH_DIRENT. */
|
|
- fd = fd_reopen(dir_fd, O_CLOEXEC);
|
|
+ fd = fd_reopen(dir_fd, O_RDONLY|O_DIRECTORY|O_CLOEXEC);
|
|
if (fd < 0)
|
|
return fd;
|
|
}
|
|
--
|
|
2.33.0
|
|
|