lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130221120025.5605.43099.stgit@warthog.procyon.org.uk>
Date:	Thu, 21 Feb 2013 12:00:25 +0000
From:	David Howells <dhowells@...hat.com>
To:	torvalds@...ux-foundation.org
Cc:	akpm@...ux-foundation.org, jkosina@...e.cz, keyrings@...ux-nfs.org,
	linux-kernel@...r.kernel.org, stable@...r.kernel.org
Subject: [PATCH] KEYS: Revert one application of "Fix unreachable code"
 patch [ver #2]

A patch to fix some unreachable code in search_my_process_keyrings() got
applied twice by two different routes upstream:

	commit e67eab39bee26f509d38d00ca1a8f24b63f46a31
	Author: Alan Cox <alan@...ux.intel.com>
	Date:   Thu Dec 20 15:05:54 2012 -0800
	keys: fix unreachable code

and:

	commit b010520ab3d2c05eb444ed5e01fe6c33842f597a
	Author: Alan Cox <alan@...ux.intel.com>
	Date:   Thu Oct 25 15:23:35 2012 +0100
	keys: Fix unreachable code

Unfortunately, the second application removed something it shouldn't have and
this wasn't detected by GIT.  This is due to the patch not having sufficient
lines of context to distinguish the two places of application.

The effect of this is relatively minor: inside the kernel, the keyring search
routines may search multiple keyrings and then prioritise the errors if no keys
or negative keys are found in any of them.  With the extra deletion, the
presence of a negative key in the thread keyring (causing ENOKEY) is
incorrectly overridden by an error searching the process keyring.

So revert the second application of the patch.

Signed-off-by: David Howells <dhowells@...hat.com>
cc: Jiri Kosina <jkosina@...e.cz>
cc: Andrew Morton <akpm@...ux-foundation.org>
cc: stable@...r.kernel.org
---

 security/keys/process_keys.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/security/keys/process_keys.c b/security/keys/process_keys.c
index 20e4bf5..58dfe08 100644
--- a/security/keys/process_keys.c
+++ b/security/keys/process_keys.c
@@ -367,6 +367,8 @@ key_ref_t search_my_process_keyrings(struct key_type *type,
 
 		switch (PTR_ERR(key_ref)) {
 		case -EAGAIN: /* no key */
+			if (ret)
+				break;
 		case -ENOKEY: /* negative key */
 			ret = key_ref;
 			break;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ