Commit 680cd62e authored by John Johansen's avatar John Johansen

apparmor: add debug assert AA_BUG and Kconfig to control debug info

Signed-off-by: default avatarJohn Johansen <john.johansen@canonical.com>
parent 57e36bbd
...@@ -36,7 +36,6 @@ config SECURITY_APPARMOR_HASH ...@@ -36,7 +36,6 @@ config SECURITY_APPARMOR_HASH
select CRYPTO select CRYPTO
select CRYPTO_SHA1 select CRYPTO_SHA1
default y default y
help help
This option selects whether introspection of loaded policy This option selects whether introspection of loaded policy
is available to userspace via the apparmor filesystem. is available to userspace via the apparmor filesystem.
...@@ -45,7 +44,6 @@ config SECURITY_APPARMOR_HASH_DEFAULT ...@@ -45,7 +44,6 @@ config SECURITY_APPARMOR_HASH_DEFAULT
bool "Enable policy hash introspection by default" bool "Enable policy hash introspection by default"
depends on SECURITY_APPARMOR_HASH depends on SECURITY_APPARMOR_HASH
default y default y
help help
This option selects whether sha1 hashing of loaded policy This option selects whether sha1 hashing of loaded policy
is enabled by default. The generation of sha1 hashes for is enabled by default. The generation of sha1 hashes for
...@@ -54,3 +52,32 @@ config SECURITY_APPARMOR_HASH_DEFAULT ...@@ -54,3 +52,32 @@ config SECURITY_APPARMOR_HASH_DEFAULT
however it can slow down policy load on some devices. In however it can slow down policy load on some devices. In
these cases policy hashing can be disabled by default and these cases policy hashing can be disabled by default and
enabled only if needed. enabled only if needed.
config SECURITY_APPARMOR_DEBUG
bool "Build AppArmor with debug code"
depends on SECURITY_APPARMOR
default n
help
Build apparmor with debugging logic in apparmor. Not all
debugging logic will necessarily be enabled. A submenu will
provide fine grained control of the debug options that are
available.
config SECURITY_APPARMOR_DEBUG_ASSERTS
bool "Build AppArmor with debugging asserts"
depends on SECURITY_APPARMOR_DEBUG
default y
help
Enable code assertions made with AA_BUG. These are primarily
function entry preconditions but also exist at other key
points. If the assert is triggered it will trigger a WARN
message.
config SECURITY_APPARMOR_DEBUG_MESSAGES
bool "Debug messages enabled by default"
depends on SECURITY_APPARMOR_DEBUG
default n
help
Set the default value of the apparmor.debug kernel parameter.
When enabled, various debug messages will be logged to
the kernel message buffer.
...@@ -35,12 +35,24 @@ ...@@ -35,12 +35,24 @@
* which is not related to profile accesses. * which is not related to profile accesses.
*/ */
#define DEBUG_ON (aa_g_debug)
#define dbg_printk(__fmt, __args...) pr_debug(__fmt, ##__args)
#define AA_DEBUG(fmt, args...) \ #define AA_DEBUG(fmt, args...) \
do { \ do { \
if (aa_g_debug) \ if (DEBUG_ON) \
pr_debug_ratelimited("AppArmor: " fmt, ##args); \ pr_debug_ratelimited("AppArmor: " fmt, ##args); \
} while (0) } while (0)
#define AA_WARN(X) WARN((X), "APPARMOR WARN %s: %s\n", __func__, #X)
#define AA_BUG(X, args...) AA_BUG_FMT((X), "" args)
#ifdef CONFIG_SECURITY_APPARMOR_DEBUG_ASSERTS
#define AA_BUG_FMT(X, fmt, args...) \
WARN((X), "AppArmor WARN %s: (" #X "): " fmt, __func__, ##args)
#else
#define AA_BUG_FMT(X, fmt, args...)
#endif
#define AA_ERROR(fmt, args...) \ #define AA_ERROR(fmt, args...) \
pr_err_ratelimited("AppArmor: " fmt, ##args) pr_err_ratelimited("AppArmor: " fmt, ##args)
......
...@@ -681,7 +681,7 @@ module_param_named(hash_policy, aa_g_hash_policy, aabool, S_IRUSR | S_IWUSR); ...@@ -681,7 +681,7 @@ module_param_named(hash_policy, aa_g_hash_policy, aabool, S_IRUSR | S_IWUSR);
#endif #endif
/* Debug mode */ /* Debug mode */
bool aa_g_debug; bool aa_g_debug = IS_ENABLED(CONFIG_SECURITY_DEBUG_MESSAGES);
module_param_named(debug, aa_g_debug, aabool, S_IRUSR | S_IWUSR); module_param_named(debug, aa_g_debug, aabool, S_IRUSR | S_IWUSR);
/* Audit mode */ /* Audit mode */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment