mirror of
https://github.com/systemd/systemd
synced 2026-03-30 11:44:49 +02:00
Compare commits
5 Commits
2e5f717545
...
f295cfa1a7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f295cfa1a7 | ||
|
|
4902a7f18d | ||
|
|
6629107404 | ||
|
|
b5dbe7179b | ||
|
|
c3b3eea2e5 |
@ -12,7 +12,6 @@ PrepareScripts=%D/mkosi/mkosi.images/build/mkosi.conf.d/debian-ubuntu/mkosi.prep
|
|||||||
Packages=
|
Packages=
|
||||||
clang-tools
|
clang-tools
|
||||||
gh
|
gh
|
||||||
iwyu
|
|
||||||
lcov
|
lcov
|
||||||
mypy
|
mypy
|
||||||
shellcheck
|
shellcheck
|
||||||
|
|||||||
@ -5,7 +5,6 @@ Distribution=fedora
|
|||||||
|
|
||||||
[Content]
|
[Content]
|
||||||
Packages=
|
Packages=
|
||||||
iwyu
|
|
||||||
lcov
|
lcov
|
||||||
gh
|
gh
|
||||||
ruff
|
ruff
|
||||||
|
|||||||
@ -11,7 +11,6 @@ PrepareScripts=%D/mkosi/mkosi.images/build/mkosi.conf.d/opensuse/mkosi.prepare
|
|||||||
Packages=
|
Packages=
|
||||||
clang-tools
|
clang-tools
|
||||||
gh
|
gh
|
||||||
include-what-you-use
|
|
||||||
lcov
|
lcov
|
||||||
mypy
|
mypy
|
||||||
python3-ruff
|
python3-ruff
|
||||||
|
|||||||
@ -830,7 +830,7 @@ int running_in_chroot(void) {
|
|||||||
return -ENOSYS;
|
return -ENOSYS;
|
||||||
}
|
}
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return log_debug_errno(r, "Failed to check if /proc/1/root and / are the same inode: %m");
|
||||||
|
|
||||||
return r == 0;
|
return r == 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,16 +20,10 @@ int mac_apparmor_setup(void) {
|
|||||||
int r;
|
int r;
|
||||||
|
|
||||||
if (!mac_apparmor_use()) {
|
if (!mac_apparmor_use()) {
|
||||||
log_debug("Skipping AppArmor initialization: not supported by the kernel or disabled.");
|
log_debug("Skipping AppArmor initialization: not supported by the kernel, is disabled or libapparmor is not installed.");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
r = dlopen_libapparmor();
|
|
||||||
if (ERRNO_IS_NEG_NOT_SUPPORTED(r))
|
|
||||||
return 0;
|
|
||||||
if (r < 0)
|
|
||||||
return log_error_errno(r, "Failed to load libapparmor: %m");
|
|
||||||
|
|
||||||
/* To honor LSM stacking, check per-LSM subdirectory first, and then the generic one as fallback. */
|
/* To honor LSM stacking, check per-LSM subdirectory first, and then the generic one as fallback. */
|
||||||
FOREACH_STRING(current_file, "/proc/self/attr/apparmor/current", "/proc/self/attr/current") {
|
FOREACH_STRING(current_file, "/proc/self/attr/apparmor/current", "/proc/self/attr/current") {
|
||||||
r = read_one_line_file(current_file, ¤t_profile);
|
r = read_one_line_file(current_file, ¤t_profile);
|
||||||
|
|||||||
@ -5751,12 +5751,7 @@ int exec_invoke(
|
|||||||
use_smack = mac_smack_use();
|
use_smack = mac_smack_use();
|
||||||
#endif
|
#endif
|
||||||
#if HAVE_APPARMOR
|
#if HAVE_APPARMOR
|
||||||
if (mac_apparmor_use()) {
|
use_apparmor = mac_apparmor_use();
|
||||||
r = dlopen_libapparmor();
|
|
||||||
if (r < 0 && !ERRNO_IS_NEG_NOT_SUPPORTED(r))
|
|
||||||
log_warning_errno(r, "Failed to load libapparmor, ignoring: %m");
|
|
||||||
use_apparmor = r >= 0;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@
|
|||||||
#include "alloc-util.h"
|
#include "alloc-util.h"
|
||||||
#include "apparmor-util.h"
|
#include "apparmor-util.h"
|
||||||
#include "fileio.h"
|
#include "fileio.h"
|
||||||
|
#include "log.h"
|
||||||
#include "parse-util.h"
|
#include "parse-util.h"
|
||||||
|
|
||||||
#if HAVE_APPARMOR
|
#if HAVE_APPARMOR
|
||||||
@ -38,18 +39,31 @@ int dlopen_libapparmor(void) {
|
|||||||
DLSYM_ARG(aa_policy_cache_replace_all),
|
DLSYM_ARG(aa_policy_cache_replace_all),
|
||||||
DLSYM_ARG(aa_policy_cache_unref));
|
DLSYM_ARG(aa_policy_cache_unref));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
bool mac_apparmor_use(void) {
|
bool mac_apparmor_use(void) {
|
||||||
static int cached_use = -1;
|
static int cached_use = -1;
|
||||||
|
int r;
|
||||||
|
|
||||||
if (cached_use < 0) {
|
if (cached_use >= 0)
|
||||||
_cleanup_free_ char *p = NULL;
|
return cached_use;
|
||||||
|
|
||||||
cached_use =
|
_cleanup_free_ char *p = NULL;
|
||||||
read_one_line_file("/sys/module/apparmor/parameters/enabled", &p) >= 0 &&
|
r = read_one_line_file("/sys/module/apparmor/parameters/enabled", &p);
|
||||||
parse_boolean(p) > 0;
|
if (r < 0) {
|
||||||
|
if (r != -ENOENT)
|
||||||
|
log_debug_errno(r, "Failed to read /sys/module/apparmor/parameters/enabled, assuming AppArmor is not available: %m");
|
||||||
|
return (cached_use = false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return cached_use;
|
r = parse_boolean(p);
|
||||||
|
if (r < 0)
|
||||||
|
log_debug_errno(r, "Failed to parse /sys/module/apparmor/parameters/enabled, assuming AppArmor is not available: %m");
|
||||||
|
if (r <= 0)
|
||||||
|
return (cached_use = false);
|
||||||
|
|
||||||
|
if (dlopen_libapparmor() < 0)
|
||||||
|
return (cached_use = false);
|
||||||
|
|
||||||
|
return (cached_use = true);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@ -21,10 +21,12 @@ DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(aa_features*, sym_aa_features_unref, aa_
|
|||||||
DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(aa_policy_cache*, sym_aa_policy_cache_unref, aa_policy_cache_unrefp, NULL);
|
DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(aa_policy_cache*, sym_aa_policy_cache_unref, aa_policy_cache_unrefp, NULL);
|
||||||
|
|
||||||
int dlopen_libapparmor(void);
|
int dlopen_libapparmor(void);
|
||||||
|
bool mac_apparmor_use(void);
|
||||||
#else
|
#else
|
||||||
static inline int dlopen_libapparmor(void) {
|
static inline int dlopen_libapparmor(void) {
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
|
static inline bool mac_apparmor_use(void) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool mac_apparmor_use(void);
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user