Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760451AbXEUTf6 (ORCPT ); Mon, 21 May 2007 15:35:58 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1765114AbXEUTWZ (ORCPT ); Mon, 21 May 2007 15:22:25 -0400 Received: from 216-99-217-87.dsl.aracnet.com ([216.99.217.87]:46504 "EHLO sous-sol.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1765521AbXEUTWO (ORCPT ); Mon, 21 May 2007 15:22:14 -0400 Message-Id: <20070521191758.389528000@sous-sol.org> References: <20070521191612.800400000@sous-sol.org> User-Agent: quilt/0.46-1 Date: Mon, 21 May 2007 12:17:21 -0700 From: Chris Wright To: linux-kernel@vger.kernel.org, stable@kernel.org Cc: Justin Forbes , Zwane Mwaikambo , "Theodore Ts'o" , Randy Dunlap , Dave Jones , Chuck Wolber , Chris Wedgwood , Michael Krufky , Chuck Ebbert , torvalds@linux-foundation.org, akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk, Herbert Xu Subject: [patch 69/69] CRYPTO: api: Read module pointer before freeing algorithm Content-Disposition: inline; filename=crypto-api-read-module-pointer-before-freeing-algorithm.patch Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1267 Lines: 42 -stable review patch. If anyone has any objections, please let us know. --------------------- From: Herbert Xu The function crypto_mod_put first frees the algorithm and then drops the reference to its module. Unfortunately we read the module pointer which after freeing the algorithm and that pointer sits inside the object that we just freed. So this patch reads the module pointer out before we free the object. Thanks to Luca Tettamanti for reporting this. Signed-off-by: Herbert Xu Signed-off-by: Chris Wright --- crypto/api.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- linux-2.6.21.1.orig/crypto/api.c +++ linux-2.6.21.1/crypto/api.c @@ -48,8 +48,10 @@ EXPORT_SYMBOL_GPL(crypto_mod_get); void crypto_mod_put(struct crypto_alg *alg) { + struct module *module = alg->cra_module; + crypto_alg_put(alg); - module_put(alg->cra_module); + module_put(module); } EXPORT_SYMBOL_GPL(crypto_mod_put); -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/