target/iscsi: avoid NULL dereference in CHAP auth error path
authorDavid Disseldorp <ddiss@suse.de>
Wed, 13 Dec 2017 17:22:30 +0000 (18:22 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Feb 2018 14:42:29 +0000 (15:42 +0100)
commit ce512d79d0466a604793addb6b769d12ee326822 upstream.

If chap_server_compute_md5() fails early, e.g. via CHAP_N mismatch, then
crypto_free_shash() is called with a NULL pointer which gets
dereferenced in crypto_shash_tfm().

Fixes: 69110e3cedbb ("iscsi-target: Use shash and ahash")
Suggested-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: David Disseldorp <ddiss@suse.de>
Cc: stable@vger.kernel.org # 4.6+
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/target/iscsi/iscsi_target_auth.c

index f9bc8ec..9518ffd 100644 (file)
@@ -421,7 +421,8 @@ static int chap_server_compute_md5(
        auth_ret = 0;
 out:
        kzfree(desc);
-       crypto_free_shash(tfm);
+       if (tfm)
+               crypto_free_shash(tfm);
        kfree(challenge);
        kfree(challenge_binhex);
        return auth_ret;