Re: [PATCH] apparmor: fix SECURITY_APPARMOR_HASH_DEFAULT parameter handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le 2018-09-18 00:12, John Johansen a écrit :
On 09/17/2018 02:56 PM, Nathan Chancellor wrote:
On Mon, Sep 17, 2018 at 11:37:54PM +0200, Greg KH wrote:
On Mon, Sep 17, 2018 at 11:15:42PM +0200, Greg KH wrote:
On Mon, Sep 17, 2018 at 09:45:47PM +0200, Loic wrote:
On Mon, 17 Sep 2018 15:58:56 +0200
Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:

On Sun, Sep 09, 2018 at 04:04:18PM +0200, Loic wrote:
Hello,

Tested without any problem so please picked up this for 4.4 to fix the
problem.
The patch below is slightly modified to adapt to this version.

[ Upstream commit 7616ac70d1bb4f2e9d25c1a82d283f3368a7b632 ]

The newly added Kconfig option could never work and just causes a build
error
when disabled:

security/apparmor/lsm.c:675:25: error:
'CONFIG_SECURITY_APPARMOR_HASH_DEFAULT' undeclared here (not in a function)
 bool aa_g_hash_policy = CONFIG_SECURITY_APPARMOR_HASH_DEFAULT;

The problem is that the macro undefined in this case, and we need to use the
IS_ENABLED()
helper to turn it into a boolean constant.

Another minor problem with the original patch is that the option is even
offered
in sysfs when SECURITY_APPARMOR_HASH is not enabled, so this also hides the
option
in that case.

Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
Fixes: 6059f71f1e94 ("apparmor: add parameter to control whether policy
hashing is used")
Signed-off-by: John Johansen <john.johansen@xxxxxxxxxxxxx>
Signed-off-by: James Morris <james.l.morris@xxxxxxxxxx>
---
diff -Nurp a/security/apparmor/crypto.c b/security/apparmor/crypto.c
--- a/security/apparmor/crypto.c
+++ b/security/apparmor/crypto.c
@@ -39,6 +39,9 @@ int aa_calc_profile_hash(struct aa_profi
 	int error = -ENOMEM;
 	u32 le32_version = cpu_to_le32(version);

+	if (!aa_g_hash_policy)
+		return 0;
+
 	if (!apparmor_tfm)
 		return 0;

diff -Nurp a/security/apparmor/lsm.c b/security/apparmor/lsm.c
--- a/security/apparmor/lsm.c
+++ b/security/apparmor/lsm.c
@@ -692,6 +692,12 @@ enum profile_mode aa_g_profile_mode = AP
 module_param_call(mode, param_set_mode, param_get_mode,
 		  &aa_g_profile_mode, S_IRUSR | S_IWUSR);

+#ifdef CONFIG_SECURITY_APPARMOR_HASH
+/* whether policy verification hashing is enabled */
+bool aa_g_hash_policy = IS_ENABLED(CONFIG_SECURITY_APPARMOR_HASH_DEFAULT); +module_param_named(hash_policy, aa_g_hash_policy, aabool, S_IRUSR |
S_IWUSR);
+#endif
+
 /* Debug mode */
 bool aa_g_debug;
module_param_named(debug, aa_g_debug, aabool, S_IRUSR | S_IWUSR);
---

The patch is whitespace corrupted and can not be applied :(

Sorry, I noticed the problem afterwards. I opened a bug report to try to fix my mail client:
https://github.com/roundcube/roundcubemail/issues/6438


Can you fix that up and resend it so that I can apply it?

No problem. Thanks for all.

Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
Fixes: 6059f71f1e94 ("apparmor: add parameter to control whether policy hashing is used")
Signed-off-by: John Johansen <john.johansen@xxxxxxxxxxxxx>
Signed-off-by: James Morris <james.l.morris@xxxxxxxxxx>
---
diff -Nurp a/security/apparmor/crypto.c b/security/apparmor/crypto.c
--- a/security/apparmor/crypto.c
+++ b/security/apparmor/crypto.c
@@ -39,6 +39,9 @@ int aa_calc_profile_hash(struct aa_profi
 	int error = -ENOMEM;
 	u32 le32_version = cpu_to_le32(version);

+	if (!aa_g_hash_policy)
+		return 0;
+
 	if (!apparmor_tfm)
 		return 0;

diff -Nurp a/security/apparmor/lsm.c b/security/apparmor/lsm.c
--- a/security/apparmor/lsm.c
+++ b/security/apparmor/lsm.c
@@ -692,6 +694,12 @@ enum profile_mode aa_g_profile_mode = AP
 module_param_call(mode, param_set_mode, param_get_mode,
 		  &aa_g_profile_mode, S_IRUSR | S_IWUSR);

+#ifdef CONFIG_SECURITY_APPARMOR_HASH
+/* whether policy verification hashing is enabled */
+bool aa_g_hash_policy = IS_ENABLED(CONFIG_SECURITY_APPARMOR_HASH_DEFAULT); +module_param_named(hash_policy, aa_g_hash_policy, aabool, S_IRUSR | S_IWUSR);
+#endif
+
 /* Debug mode */
 bool aa_g_debug;
 module_param_named(debug, aa_g_debug, aabool, S_IRUSR | S_IWUSR);

THanks, that worked, now queued up.

And dropped as this patch broke the build.  I'm guessing this really
isn't needed if you didn't even test it worked :(

Please fix all of this up, test it properly, and then send it as a
"clean" patch that I can apply easily.

thanks,

greg k-h

Commit 6059f71f1e94 ("apparmor: add parameter to control whether policy hashing is used") didn't even come in until 4.8 and SECURITY_APPARMOR_HASH_DEFAULT isn't defined anywhere in 4.4. Fairly certain this isn't needed at all.


Sorry when I did my initial check on the patch backport deviating from
the upstream patch I didn't build test (assumed that had already been
done my bad), nor did I look into if it was valid (also my bad). I
should have.

I'm the one following sorry, I forgot to report the Kconfig of the latest version of the 4.9 kernel that I used during my tests. I admit my mistakes and learn from them. Please excuse me!

I agree with your assessment, this isn't needed. 4.4 does not have
the kconfig nor code that uses it.

It's not really the backport functionality that's interesting but the return 0.
Can you certify to me that "return 0" would be of no use?

Greg do not take this patch. I am sorry I wasted you time by missing
this on my initial check.

It's me, I'm going to review my method of submitting a patch.

--
Best regards,

Loic



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux