uint64_t b;
int r;
- r = dlopen_libseccomp(LOG_DEBUG);
+ r = DLOPEN_LIBSECCOMP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0) {
*ret_badness = UINT64_MAX;
*ret_description = NULL;
info->_umask = c->umask;
#if HAVE_SECCOMP
- if (dlopen_libseccomp(LOG_DEBUG) >= 0) {
+ if (DLOPEN_LIBSECCOMP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED) >= 0) {
SET_FOREACH(key, c->syscall_archs) {
const char *name;
if (!c->secure_boot_certificate || !c->secure_boot_private_key)
return 0;
- r = dlopen_libcrypto(LOG_DEBUG);
+ r = DLOPEN_LIBCRYPTO(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
if (supported >= 0)
return supported;
- if (dlopen_bpf(LOG_WARNING) < 0)
+ if (DLOPEN_BPF(LOG_WARNING, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED) < 0)
return (supported = false);
obj = bind_iface_bpf__open();
if (!initialize)
return false;
- if (dlopen_bpf(LOG_WARNING) < 0)
+ if (DLOPEN_BPF(LOG_WARNING, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED) < 0)
return (supported = false);
r = lsm_supported("bpf");
if (supported >= 0)
return supported;
- if (dlopen_bpf(LOG_WARNING) < 0)
+ if (DLOPEN_BPF(LOG_WARNING, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED) < 0)
return (supported = false);
r = lsm_supported("bpf");
assert(m);
- r = dlopen_bpf(LOG_WARNING);
+ r = DLOPEN_BPF(LOG_WARNING, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
"bpf-restrict-fsaccess: Failed to load libbpf for FD validation, aborting.");
if (supported >= 0)
return supported;
- if (dlopen_bpf(LOG_WARNING) < 0)
+ if (DLOPEN_BPF(LOG_WARNING, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED) < 0)
return (supported = false);
r = prepare_restrict_ifaces_bpf(NULL, true, NULL, &obj);
_cleanup_(socket_bind_bpf_freep) struct socket_bind_bpf *obj = NULL;
int r;
- if (dlopen_bpf(LOG_WARNING) < 0)
+ if (DLOPEN_BPF(LOG_WARNING, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED) < 0)
return false;
r = prepare_socket_bind_bpf(/* unit= */ NULL, /* allow_rules= */ NULL, /* deny_rules= */ NULL, &obj);
* parent process will exec() the actual daemon. We do things this way to ensure that the main PID of
* the daemon is the one we initially fork()ed. */
- r = dlopen_libpam(LOG_ERR);
+ r = DLOPEN_LIBPAM(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(c);
/* No libseccomp, all is fine */
- if (dlopen_libseccomp(LOG_DEBUG) < 0)
+ if (DLOPEN_LIBSECCOMP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED) < 0)
return true;
/* No syscall filter, we are allowed to drop privileges */
}
/* We are in a new binary, so dl-open again */
- r = dlopen_bpf(LOG_DEBUG);
+ r = DLOPEN_BPF(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
}
/* Load a bunch of libraries we'll possibly need later, before we turn off dlopen() */
- (void) dlopen_bpf(LOG_DEBUG);
- (void) dlopen_cryptsetup(LOG_DEBUG);
- (void) dlopen_libmount(LOG_DEBUG);
- (void) dlopen_libseccomp(LOG_DEBUG);
+ (void) DLOPEN_BPF(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
+ (void) DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
+ (void) DLOPEN_LIBMOUNT(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
+ (void) DLOPEN_LIBSECCOMP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
/* Let's now disable further dlopen()ing of libraries, since we are about to do namespace
* shenanigans, and do not want to mix resources from host and namespace */
fputc('~', f);
#if HAVE_SECCOMP
- if (dlopen_libseccomp(LOG_DEBUG) >= 0) {
+ if (DLOPEN_LIBSECCOMP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED) >= 0) {
void *id, *val;
bool first = true;
HASHMAP_FOREACH_KEY(val, id, c->syscall_filter) {
assert(c);
#if HAVE_SECCOMP
- if (dlopen_libseccomp(LOG_DEBUG) < 0)
+ if (DLOPEN_LIBSECCOMP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED) < 0)
return strv_new(NULL);
void *id, *val;
assert(c);
#if HAVE_SECCOMP
- if (dlopen_libseccomp(LOG_DEBUG) < 0)
+ if (DLOPEN_LIBSECCOMP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED) < 0)
return strv_new(NULL);
void *id, *val;
}
/* Building without libmount is allowed, but if it is compiled in, then we must be able to load it */
- r = dlopen_libmount(LOG_DEBUG);
+ r = DLOPEN_LIBMOUNT(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0 && !ERRNO_IS_NEG_NOT_SUPPORTED(r)) {
error_message = "Failed to load libmount.so";
goto finish;
}
static bool mount_supported(void) {
- return dlopen_libmount(LOG_DEBUG) >= 0;
+ return DLOPEN_LIBMOUNT(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED) >= 0;
}
static int mount_subsystem_ratelimited(Manager *m) {
if (r > 0)
return log_debug_errno(SYNTHETIC_ERRNO(EINVAL), "Target namespace is not separate, cannot reload extensions");
- (void) dlopen_cryptsetup(LOG_DEBUG);
+ (void) DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
extension_dir = path_join(p->private_namespace_dir, "unit-extensions");
if (!extension_dir)
assert(loaded_policy);
- r = dlopen_libselinux(LOG_DEBUG);
+ r = DLOPEN_LIBSELINUX(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return 0;
_cleanup_(mnt_free_tablep) struct libmnt_table *table = NULL;
int r;
- r = dlopen_libmount(LOG_DEBUG);
+ r = DLOPEN_LIBMOUNT(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
if (r <= 0)
return r;
- r = dlopen_cryptsetup(LOG_ERR);
+ r = DLOPEN_CRYPTSETUP(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
assert(pin || pin_size == 0);
assert(token >= 0);
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
assert(json);
- if (dlopen_cryptsetup(LOG_DEBUG) < 0)
+ if (DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED) < 0)
return;
r = parse_luks2_fido2_data(cd, json, &rp_id, &salt, &salt_size, &cid, &cid_size, &required);
assert(json);
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
assert(pin || pin_size == 0);
assert(token >= 0);
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
_cleanup_free_ void *pkcs11_key = NULL;
Pkcs11RsaPadding rsa_padding = PKCS11_RSA_PADDING_PKCS1V15;
- if (dlopen_cryptsetup(LOG_DEBUG) < 0)
+ if (DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED) < 0)
return;
r = parse_luks2_pkcs11_data(cd, json, &pkcs11_uri, &pkcs11_key, &pkcs11_key_size, &rsa_padding);
sd_json_variant *w;
_cleanup_(sd_json_variant_unrefp) sd_json_variant *v = NULL;
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
assert(ret_password);
assert(ret_password_len);
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
assert(json);
- if (dlopen_cryptsetup(LOG_DEBUG) < 0)
+ if (DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED) < 0)
return;
r = sd_json_parse(json, SD_JSON_PARSE_MUST_BE_OBJECT, &v, /* reterr_line= */ NULL, /* reterr_column= */ NULL);
assert(json);
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
#if HAVE_OPENSSL
_cleanup_strv_free_ char **l = NULL;
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
if (r <= 0)
return r;
- r = dlopen_cryptsetup(LOG_ERR);
+ r = DLOPEN_CRYPTSETUP(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
break;
OPTION_LONG("make-archive", NULL, "Convert the DDI to an archive file"):
- r = dlopen_libarchive(LOG_ERR);
+ r = DLOPEN_LIBARCHIVE(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
uint64_t size;
int r;
- r = dlopen_cryptsetup(LOG_ERR);
+ r = DLOPEN_CRYPTSETUP(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
/* Let's decode the PEM key to DER (so that we lose prefix/suffix), then truncate it
* for display reasons. */
- r = dlopen_libcrypto(LOG_DEBUG);
+ r = DLOPEN_LIBCRYPTO(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(m);
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
assert(encrypted_size > 0);
assert(match_key_descriptor);
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(iovec_is_set(tag));
assert(match_key_descriptor);
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
size_t encrypted_size;
ssize_t ss;
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(setup);
assert(ret_home);
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(ret_fstype);
assert(ret_uuid);
- r = dlopen_libblkid(LOG_DEBUG);
+ r = DLOPEN_LIBBLKID(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(setup);
assert(!setup->crypt_device);
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(ret_size);
assert(sector_size > 0);
- r = dlopen_libblkid(LOG_DEBUG);
+ r = DLOPEN_LIBBLKID(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(cd);
assert(ret);
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(setup);
assert(user_record_storage(h) == USER_LUKS);
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(setup);
assert(ret_home);
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(setup->image_fd < 0);
assert(ret_home);
- r = dlopen_fdisk(LOG_DEBUG);
+ r = DLOPEN_FDISK(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(user_record_storage(h) == USER_LUKS);
assert(setup);
- r = dlopen_fdisk(LOG_DEBUG);
+ r = DLOPEN_FDISK(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(user_record_storage(h) == USER_LUKS);
assert(setup);
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
if (r < 0)
log_warning_errno(r, "Failed to determine if %s is encrypted, ignoring: %m", get_home_root());
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
log_info("Not using '%s' storage, since libcryptsetup could not be loaded.", user_storage_to_string(USER_LUKS));
else {
bool debug = false;
int r;
- r = dlopen_libpam(LOG_DEBUG);
+ r = DLOPEN_LIBPAM(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return PAM_SERVICE_ERR;
- (void) dlopen_libintl(LOG_DEBUG); /* best-effort: messages won't be translated if this fails */
+ (void) DLOPEN_LIBINTL(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED); /* best-effort: messages won't be translated if this fails */
pam_log_setup();
bool debug = false;
int r;
- r = dlopen_libpam(LOG_DEBUG);
+ r = DLOPEN_LIBPAM(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return PAM_SERVICE_ERR;
- (void) dlopen_libintl(LOG_DEBUG); /* best-effort: messages won't be translated if this fails */
+ (void) DLOPEN_LIBINTL(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED); /* best-effort: messages won't be translated if this fails */
pam_log_setup();
bool debug = false;
int r;
- r = dlopen_libpam(LOG_DEBUG);
+ r = DLOPEN_LIBPAM(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return PAM_SERVICE_ERR;
- (void) dlopen_libintl(LOG_DEBUG); /* best-effort: messages won't be translated if this fails */
+ (void) DLOPEN_LIBINTL(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED); /* best-effort: messages won't be translated if this fails */
pam_log_setup();
usec_t t;
int r;
- r = dlopen_libpam(LOG_DEBUG);
+ r = DLOPEN_LIBPAM(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return PAM_SERVICE_ERR;
- (void) dlopen_libintl(LOG_DEBUG); /* best-effort: messages won't be translated if this fails */
+ (void) DLOPEN_LIBINTL(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED); /* best-effort: messages won't be translated if this fails */
pam_log_setup();
bool debug = false;
int r;
- r = dlopen_libpam(LOG_DEBUG);
+ r = DLOPEN_LIBPAM(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return PAM_SERVICE_ERR;
- (void) dlopen_libintl(LOG_DEBUG); /* best-effort: messages won't be translated if this fails */
+ (void) DLOPEN_LIBINTL(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED); /* best-effort: messages won't be translated if this fails */
pam_log_setup();
if (r <= 0)
return r;
- r = dlopen_curl(LOG_DEBUG);
+ r = DLOPEN_CURL(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
assert(tree_fd >= 0);
assert(ret_pid);
- r = dlopen_libarchive(LOG_DEBUG);
+ r = DLOPEN_LIBARCHIVE(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(tree_fd >= 0);
assert(ret_pid);
- r = dlopen_libarchive(LOG_DEBUG);
+ r = DLOPEN_LIBARCHIVE(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
}
if (j->calc_checksum) {
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
log_setup();
- r = dlopen_cryptsetup(LOG_ERR);
+ r = DLOPEN_CRYPTSETUP(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
if (r <= 0)
return r;
- r = dlopen_microhttpd(LOG_ERR);
+ r = DLOPEN_MICROHTTPD(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
#if HAVE_MICROHTTPD
int r;
- r = dlopen_microhttpd(LOG_ERR);
+ r = DLOPEN_MICROHTTPD(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
if (r <= 0)
return r;
- r = dlopen_curl(LOG_DEBUG);
+ r = DLOPEN_CURL(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
return r;
}
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
assert(pamh);
- r = dlopen_libpam(LOG_DEBUG);
+ r = DLOPEN_LIBPAM(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return PAM_SERVICE_ERR;
assert(pamh);
- r = dlopen_libpam(LOG_DEBUG);
+ r = DLOPEN_LIBPAM(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return PAM_SERVICE_ERR;
assert(pamh);
- r = dlopen_libpam(LOG_DEBUG);
+ r = DLOPEN_LIBPAM(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return PAM_SERVICE_ERR;
"Select TPM bank (SHA1, SHA256, SHA384, SHA512)"): {
const EVP_MD *implementation;
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
if (r <= 0)
return r;
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
assert(manager);
- r = dlopen_bpf(LOG_DEBUG);
+ r = DLOPEN_BPF(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (ERRNO_IS_NEG_NOT_SUPPORTED(r))
return log_debug_errno(r, "sysctl monitor disabled, as BPF support is not available.");
if (r < 0)
if (r < 0)
return json_log(def, flags, r, "Unknown default action: %s", sd_json_variant_string(def));
- r = dlopen_libseccomp(LOG_DEBUG);
+ r = DLOPEN_LIBSECCOMP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return json_log(def, flags, r, "No support for libseccomp: %m");
if (arg_cleanup)
return do_cleanup();
- (void) dlopen_libmount(LOG_DEBUG);
- (void) dlopen_libseccomp(LOG_DEBUG);
- (void) dlopen_libselinux(LOG_DEBUG);
+ (void) DLOPEN_LIBMOUNT(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
+ (void) DLOPEN_LIBSECCOMP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
+ (void) DLOPEN_LIBSELINUX(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
r = cg_has_legacy();
if (r < 0)
if (r == 0)
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "bpf-lsm not supported, can't lock down user namespace.");
- r = dlopen_bpf(LOG_DEBUG);
+ r = DLOPEN_BPF(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
OPTION_LONG("bank", "DIGEST", "Select TPM PCR bank (SHA1, SHA256)"): {
const EVP_MD *implementation;
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
if (r <= 0)
return r;
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
* there, and extract the metadata we need. The metadata is sent from the child back to us. */
/* Load some libraries before we fork workers off that want to use them */
- (void) dlopen_cryptsetup(LOG_DEBUG);
- (void) dlopen_libmount(LOG_DEBUG);
+ (void) DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
+ (void) DLOPEN_LIBMOUNT(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
r = mkdtemp_malloc("/tmp/inspect-XXXXXX", &tmpdir);
if (r < 0)
"Cannot format %s filesystem without source files, refusing.", p->format);
if (p->verity != VERITY_OFF || p->encrypt != ENCRYPT_OFF) {
- r = dlopen_cryptsetup(LOG_DEBUG);
+ r = DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return log_syntax(NULL, LOG_ERR, path, 1, r,
"libcryptsetup not found, Verity=/Encrypt= are not supported: %m");
assert(offset != UINT64_MAX);
assert(size != UINT64_MAX);
- r = dlopen_libblkid(LOG_ERR);
+ r = DLOPEN_LIBBLKID(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
assert(p);
assert(p->encrypt != ENCRYPT_OFF);
- r = dlopen_cryptsetup(LOG_ERR);
+ r = DLOPEN_CRYPTSETUP(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
(void) partition_hint(p, node, &hint);
- r = dlopen_cryptsetup(LOG_ERR);
+ r = DLOPEN_CRYPTSETUP(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(iovec_is_set(roothash));
assert(ret_signature);
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
* appear in the host namespace. Hence we fork a child that has its own file system namespace and
* detached mount propagation. */
- (void) dlopen_libmount(LOG_DEBUG);
+ (void) DLOPEN_LIBMOUNT(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
r = pidref_safe_fork(
"(sd-copy)",
return log_error_errno(r, "Failed to open block device " DEVNUM_FORMAT_STR ": %m",
DEVNUM_FORMAT_VAL(whole_devno));
- r = dlopen_libblkid(LOG_ERR);
+ r = DLOPEN_LIBBLKID(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
if (r <= 0)
return r;
- r = dlopen_fdisk(LOG_ERR);
+ r = DLOPEN_FDISK(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
_cleanup_free_ char *json = NULL;
int r;
- r = dlopen_curl(LOG_DEBUG);
+ r = DLOPEN_CURL(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
assert(dnskey);
assert(result);
- r = dlopen_libcrypto(LOG_DEBUG);
+ r = DLOPEN_LIBCRYPTO(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(dnskey);
assert(ds);
- r = dlopen_libcrypto(LOG_DEBUG);
+ r = DLOPEN_LIBCRYPTO(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(name);
assert(ret);
- r = dlopen_libcrypto(LOG_DEBUG);
+ r = DLOPEN_LIBCRYPTO(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(manager);
- r = dlopen_libcrypto(LOG_WARNING);
+ r = DLOPEN_LIBCRYPTO(LOG_WARNING, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
- r = dlopen_libssl(LOG_WARNING);
+ r = DLOPEN_LIBSSL(LOG_WARNING, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
#if HAVE_LIBIDN2
_cleanup_free_ char *utf8 = NULL;
- if (dlopen_idn(LOG_DEBUG) >= 0) {
+ if (DLOPEN_IDN(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED) >= 0) {
r = sym_idn2_to_unicode_8z8z(label, &utf8, 0);
if (r != IDN2_OK)
return log_debug_errno(SYNTHETIC_ERRNO(EUCLEAN),
_cleanup_(iovec_done) struct iovec signed_attributes_signature = {};
int r;
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
assert(head);
- r = dlopen_libmount(LOG_ERR);
+ r = DLOPEN_LIBMOUNT(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
bool need_to_reload;
int r;
- (void) dlopen_libmount(LOG_DEBUG);
+ (void) DLOPEN_LIBMOUNT(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
r = need_reload(image_class, hierarchies, no_reload);
if (r < 0)
int r;
- (void) dlopen_cryptsetup(LOG_DEBUG);
- (void) dlopen_libblkid(LOG_DEBUG);
- (void) dlopen_libmount(LOG_DEBUG);
+ (void) DLOPEN_CRYPTSETUP(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
+ (void) DLOPEN_LIBBLKID(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
+ (void) DLOPEN_LIBMOUNT(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
_cleanup_(pidref_done) PidRef pidref = PIDREF_NULL;
r = pidref_safe_fork("(sd-merge)", FORK_DEATHSIG_SIGTERM|FORK_LOG|FORK_NEW_MOUNTNS, &pidref);
POINTER_MAY_BE_NULL(partition_type);
assert(ret);
- r = dlopen_fdisk(LOG_DEBUG);
+ r = DLOPEN_FDISK(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
if (change == 0) /* Nothing to do */
return 0;
- r = dlopen_fdisk(LOG_DEBUG);
+ r = DLOPEN_FDISK(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(rr);
- r = dlopen_fdisk(LOG_DEBUG);
+ r = DLOPEN_FDISK(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
struct stat st;
int r;
- r = dlopen_bpf(LOG_ERR);
+ r = DLOPEN_BPF(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return log_error_errno(r, "Failed to dlopen libbpf: %m");
#if HAVE_LIBBPF
int r;
- r = dlopen_bpf(LOG_ERR);
+ r = DLOPEN_BPF(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(cond_exec);
assert(ret);
- r = dlopen_libacl(LOG_DEBUG);
+ r = DLOPEN_LIBACL(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
assert(c);
- r = dlopen_libacl(LOG_DEBUG);
+ r = DLOPEN_LIBACL(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (r < 0)
return r;
return EXIT_SUCCESS;
}
- r = dlopen_libcrypto(LOG_ERR);
+ r = DLOPEN_LIBCRYPTO(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
int64_t offset = 0;
int r;
- r = dlopen_libblkid(LOG_DEBUG);
+ r = DLOPEN_LIBBLKID(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return log_device_debug_errno(dev, r, "blkid not available: %m");
return log_error_errno(r, "Failed to create /run/udev: %m");
/* Load some shared libraries before we fork any workers */
- (void) dlopen_libacl(LOG_DEBUG);
- (void) dlopen_libblkid(LOG_DEBUG);
- (void) dlopen_libkmod(LOG_DEBUG);
- (void) dlopen_libmount(LOG_DEBUG);
- (void) dlopen_tpm2(LOG_DEBUG);
+ (void) DLOPEN_LIBACL(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
+ (void) DLOPEN_LIBBLKID(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
+ (void) DLOPEN_LIBKMOD(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
+ (void) DLOPEN_LIBMOUNT(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
+ (void) DLOPEN_TPM2(LOG_DEBUG, SD_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED);
if (arg_daemonize) {
pid_t pid;
assert(d);
assert(f);
- r = dlopen_libblkid(LOG_ERR);
+ r = DLOPEN_LIBBLKID(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;
log_setup();
- r = dlopen_cryptsetup(LOG_ERR);
+ r = DLOPEN_CRYPTSETUP(LOG_ERR, SD_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED);
if (r < 0)
return r;