]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
apparmor: Fix undefined references to zstd_ symbols
authorJohn Johansen <john.johansen@canonical.com>
Thu, 29 Sep 2022 13:24:29 +0000 (06:24 -0700)
committerJohn Johansen <john.johansen@canonical.com>
Mon, 3 Oct 2022 21:49:04 +0000 (14:49 -0700)
Unfortunately the switch to using zstd compression did not properly
ifdef all the code that uses zstd_ symbols. So that if exporting of
binary policy is disabled in the config the compile will fail with the
following errors

security/apparmor/lsm.c:1545: undefined reference to `zstd_min_clevel'
aarch64-linux-ld: security/apparmor/lsm.c:1545: undefined reference to `zstd_max_clevel'

Reported-by: kernel test robot <lkp@intel.com>
Fixes: 52ccc20c652b ("apparmor: use zstd compression for profile data")
Signed-off-by: John Johansen <john.johansen@canonical.com>
Acked-by: Jon Tourville <jon.tourville@canonical.com>
security/apparmor/apparmorfs.c
security/apparmor/include/apparmor.h
security/apparmor/lsm.c

index ddd64b8ebf05ea16f5a2dc06b2d06e6884b147e2..2c138309ad665981f91f9a23dc38475b40b6799f 100644 (file)
@@ -1202,13 +1202,13 @@ static int seq_ns_name_show(struct seq_file *seq, void *v)
 
 static int seq_ns_compress_min_show(struct seq_file *seq, void *v)
 {
-       seq_printf(seq, "%d\n", zstd_min_clevel());
+       seq_printf(seq, "%d\n", AA_MIN_CLEVEL);
        return 0;
 }
 
 static int seq_ns_compress_max_show(struct seq_file *seq, void *v)
 {
-       seq_printf(seq, "%d\n", zstd_max_clevel());
+       seq_printf(seq, "%d\n", AA_MAX_CLEVEL);
        return 0;
 }
 
index 6d9ca075fcb9c9db83b70399e51b2d06163c72aa..8a81557c9d59b1f3f2aa84046fd7d2768a914a49 100644 (file)
@@ -51,4 +51,15 @@ extern bool aa_g_logsyscall;
 extern bool aa_g_paranoid_load;
 extern unsigned int aa_g_path_max;
 
+#ifdef CONFIG_SECURITY_APPARMOR_EXPORT_BINARY
+#define AA_MIN_CLEVEL zstd_min_clevel()
+#define AA_MAX_CLEVEL zstd_max_clevel()
+#define AA_DEFAULT_CLEVEL ZSTD_CLEVEL_DEFAULT
+#else
+#define AA_MIN_CLEVEL 0
+#define AA_MAX_CLEVEL 0
+#define AA_DEFAULT_CLEVEL 0
+#endif /* CONFIG_SECURITY_APPARMOR_EXPORT_BINARY */
+
+
 #endif /* __APPARMOR_H */
index a22e53e44123bc2d76191cbb3508d825c64c7bd7..8e2b951c4988c0f129dbc065a694cd0127e77b5b 100644 (file)
@@ -1365,7 +1365,7 @@ module_param_named(export_binary, aa_g_export_binary, aabool, 0600);
 #endif
 
 /* policy loaddata compression level */
-int aa_g_rawdata_compression_level = ZSTD_CLEVEL_DEFAULT;
+int aa_g_rawdata_compression_level = AA_DEFAULT_CLEVEL;
 module_param_named(rawdata_compression_level, aa_g_rawdata_compression_level,
                   aacompressionlevel, 0400);
 
@@ -1547,8 +1547,7 @@ static int param_set_aacompressionlevel(const char *val,
        error = param_set_int(val, kp);
 
        aa_g_rawdata_compression_level = clamp(aa_g_rawdata_compression_level,
-                                              zstd_min_clevel(),
-                                              zstd_max_clevel());
+                                              AA_MIN_CLEVEL, AA_MAX_CLEVEL);
        pr_info("AppArmor: policy rawdata compression level set to %d\n",
                aa_g_rawdata_compression_level);