From: Daan De Meyer Date: Thu, 22 Dec 2022 13:27:57 +0000 (+0100) Subject: tmpfile-util-label: Add fopen_temporary_at_label() X-Git-Tag: v254-rc1~1231^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e8729892e88e7dacf52b39a8f859eb70d946b37e;p=thirdparty%2Fsystemd.git tmpfile-util-label: Add fopen_temporary_at_label() --- diff --git a/src/shared/tmpfile-util-label.c b/src/shared/tmpfile-util-label.c index 17c5038b51b..a5f364cba0a 100644 --- a/src/shared/tmpfile-util-label.c +++ b/src/shared/tmpfile-util-label.c @@ -6,7 +6,8 @@ #include "tmpfile-util-label.h" #include "tmpfile-util.h" -int fopen_temporary_label( +int fopen_temporary_at_label( + int dir_fd, const char *target, const char *path, FILE **f, @@ -14,13 +15,14 @@ int fopen_temporary_label( int r; + assert(dir_fd >= 0 || dir_fd == AT_FDCWD); assert(path); - r = mac_selinux_create_file_prepare(target, S_IFREG); + r = mac_selinux_create_file_prepare_at(dir_fd, target, S_IFREG); if (r < 0) return r; - r = fopen_temporary(path, f, temp_path); + r = fopen_temporary_at(dir_fd, path, f, temp_path); mac_selinux_create_file_clear(); diff --git a/src/shared/tmpfile-util-label.h b/src/shared/tmpfile-util-label.h index 4987057f133..68ab0755a97 100644 --- a/src/shared/tmpfile-util-label.h +++ b/src/shared/tmpfile-util-label.h @@ -1,10 +1,14 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once +#include #include /* These functions are split out of tmpfile-util.h (and not for example just flags to the functions they * wrap) in order to optimize linking: this way, -lselinux is needed only for the callers of these functions * that need selinux, but not for all. */ -int fopen_temporary_label(const char *target, const char *path, FILE **f, char **temp_path); +int fopen_temporary_at_label(int dir_fd, const char *target, const char *path, FILE **f, char **temp_path); +static inline int fopen_temporary_label(const char *target, const char *path, FILE **f, char **temp_path) { + return fopen_temporary_at_label(AT_FDCWD, target, path, f, temp_path); +}