diff mbox

crypto: caam: fix caam_jr_alloc() ret code

Message ID 1462540733-2170-2-git-send-email-cata.vasile@nxp.com (mailing list archive)
State Accepted
Delegated to: Herbert Xu
Headers show

Commit Message

Catalin Vasile May 6, 2016, 1:18 p.m. UTC
caam_jr_alloc() used to return NULL if a JR device could not be
allocated for a session. In turn, every user of this function used
IS_ERR() function to verify if anything went wrong, which does NOT look
for NULL values. This made the kernel crash if the sanity check failed,
because the driver continued to think it had allocated a valid JR dev
instance to the session and at some point it tries to do a caam_jr_free()
on a NULL JR dev pointer.
This patch is a fix for this issue.

Signed-off-by: Catalin Vasile <cata.vasile@nxp.com>
---
 drivers/crypto/caam/jr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Herbert Xu May 10, 2016, 9:54 a.m. UTC | #1
Catalin Vasile <cata.vasile@nxp.com> wrote:
> caam_jr_alloc() used to return NULL if a JR device could not be
> allocated for a session. In turn, every user of this function used
> IS_ERR() function to verify if anything went wrong, which does NOT look
> for NULL values. This made the kernel crash if the sanity check failed,
> because the driver continued to think it had allocated a valid JR dev
> instance to the session and at some point it tries to do a caam_jr_free()
> on a NULL JR dev pointer.
> This patch is a fix for this issue.
> 
> Signed-off-by: Catalin Vasile <cata.vasile@nxp.com>

Patch applied.  Thanks.
diff mbox

Patch

diff --git a/drivers/crypto/caam/jr.c b/drivers/crypto/caam/jr.c
index 6fd63a6..5ef4be2 100644
--- a/drivers/crypto/caam/jr.c
+++ b/drivers/crypto/caam/jr.c
@@ -248,7 +248,7 @@  static void caam_jr_dequeue(unsigned long devarg)
 struct device *caam_jr_alloc(void)
 {
 	struct caam_drv_private_jr *jrpriv, *min_jrpriv = NULL;
-	struct device *dev = NULL;
+	struct device *dev = ERR_PTR(-ENODEV);
 	int min_tfm_cnt	= INT_MAX;
 	int tfm_cnt;