const char *e;
int r;
- assert(rfd >= 0 || rfd == AT_FDCWD);
+ assert(rfd >= 0 || IN_SET(rfd, AT_FDCWD, XAT_FDROOT));
e = secure_getenv("SYSTEMD_OS_RELEASE");
if (e)
}
int open_os_release(const char *root, char **ret_path, int *ret_fd) {
- _cleanup_close_ int rfd = -EBADF, fd = -EBADF;
+ _cleanup_close_ int rfd = XAT_FDROOT, fd = -EBADF;
_cleanup_free_ char *p = NULL;
int r;
- rfd = open(empty_to_root(root), O_CLOEXEC | O_DIRECTORY | O_PATH);
- if (rfd < 0)
- return -errno;
+ if (!empty_or_root(root)) {
+ rfd = open(root, O_CLOEXEC | O_DIRECTORY | O_PATH);
+ if (rfd < 0)
+ return -errno;
+ }
r = open_os_release_at(rfd, ret_path ? &p : NULL, ret_fd ? &fd : NULL);
if (r < 0)
const char *p;
int r;
- assert(rfd >= 0 || rfd == AT_FDCWD);
+ assert(rfd >= 0 || IN_SET(rfd, AT_FDCWD, XAT_FDROOT));
assert(!extension || (image_class >= 0 && image_class < _IMAGE_CLASS_MAX));
if (!extension)
char **ret_path,
int *ret_fd) {
- _cleanup_close_ int rfd = -EBADF, fd = -EBADF;
+ _cleanup_close_ int rfd = XAT_FDROOT, fd = -EBADF;
_cleanup_free_ char *p = NULL;
int r;
- rfd = open(empty_to_root(root), O_CLOEXEC | O_DIRECTORY | O_PATH);
- if (rfd < 0)
- return -errno;
+ if (!empty_or_root(root)) {
+ rfd = open(root, O_CLOEXEC | O_DIRECTORY | O_PATH);
+ if (rfd < 0)
+ return -errno;
+ }
r = open_extension_release_at(rfd, image_class, extension, relax_extension_release_check,
ret_path ? &p : NULL, ret_fd ? &fd : NULL);
_cleanup_free_ char *p = NULL;
int r;
- assert(rfd >= 0 || rfd == AT_FDCWD);
+ assert(rfd >= 0 || IN_SET(rfd, AT_FDCWD, XAT_FDROOT));
r = open_extension_release_at(rfd, image_class, extension, relax_extension_release_check, &p, &fd);
if (r < 0)
va_list ap;
int r;
- assert(rfd >= 0 || rfd == AT_FDCWD);
+ assert(rfd >= 0 || IN_SET(rfd, AT_FDCWD, XAT_FDROOT));
va_start(ap, extension);
r = parse_extension_release_atv(rfd, image_class, extension, relax_extension_release_check, ap);
const char *extension,
...) {
- _cleanup_close_ int rfd = -EBADF;
+ _cleanup_close_ int rfd = XAT_FDROOT;
va_list ap;
int r;
- rfd = open(empty_to_root(root), O_CLOEXEC | O_DIRECTORY | O_PATH);
- if (rfd < 0)
- return -errno;
+ if (!empty_or_root(root)) {
+ rfd = open(root, O_CLOEXEC | O_DIRECTORY | O_PATH);
+ if (rfd < 0)
+ return -errno;
+ }
va_start(ap, extension);
r = parse_extension_release_atv(rfd, image_class, extension, relax_extension_release_check, ap);
va_end(ap);
+
return r;
}