From: Tim Chen <tim.c.chen@linux.intel.com>
To: Mikulas Patocka <mpatocka@redhat.com>,
Herbert Xu <herbert@gondor.apana.org.au>,
"David S. Miller" <davem@davemloft.net>
Cc: linux-crypto@vger.kernel.org, dm-devel@redhat.com,
Milan Broz <mbroz@redhat.com>,
Megha Dey <megha.dey@linux.intel.com>
Subject: Re: Crash in crypto mcryptd
Date: Thu, 01 Dec 2016 17:47:02 -0800 [thread overview]
Message-ID: <1480643222.3064.52.camel@linux.intel.com> (raw)
In-Reply-To: <alpine.LRH.2.02.1612011819540.27565@file01.intranet.prod.int.rdu2.redhat.com>
On Thu, 2016-12-01 at 19:00 -0500, Mikulas Patocka wrote:
> Hi
>
> There is a bug in mcryptd initialization.
>
> This is a test module that tries various hash algorithms. When you load
> the module with "insmod test.ko 'alg=mcryptd(md5)'", the machine crashes.
I don't think your test setup is right. The mcryptd supports only multi-buffer
algorithm. I don't think there is such an implementation for md5.
Please refer to arch/x86/crypto/sha1-mb
multi-buffer implementation of sha1 to see the proper
setup and usage with mcryptd. You can also run tcrypt test to
exercise this code.
Tim
>
> Mikulas
>
>
> #include <linux/module.h>
> #include <linux/init.h>
> #include <crypto/hash.h>
>
> static char *alg = "md5";
>
> module_param_named(alg, alg, charp, 0444);
> MODULE_PARM_DESC(alg, "the algorith to test");
>
> static bool sync = true;
>
> module_param_named(sync, sync, bool, 0444);
> MODULE_PARM_DESC(alg, "sync flag");
>
> static int __init dump_init(void)
> {
> struct crypto_shash *h;
> char key[4];
> int r;
> printk("testing algorithm '%s'\n", alg);
> h = crypto_alloc_shash(alg, 0, sync ? CRYPTO_ALG_ASYNC : 0);
> if (IS_ERR(h)) {
> printk("error %d\n", (int)PTR_ERR(h));
> return PTR_ERR(h);
> }
> printk("setting key\n");
> r = crypto_shash_setkey(h, key, sizeof key);
> if (r)
> printk("setkey: %d\n", r);
> crypto_free_shash(h);
> printk("module loaded\n");
> return 0;
> }
>
> static void __exit dump_exit(void)
> {
> printk("dump exit\n");
> }
>
> module_init(dump_init)
> module_exit(dump_exit)
> MODULE_LICENSE("GPL");
>
>
> [898029.802035] BUG: unable to handle kernel NULL pointer dereference at
> (null)
> [898029.806060] IP: [<ffffffffa022014d>] md5_final+0xad/0x210 [md5]
> [898029.808156] PGD 11a5d8067 [898029.809051] PUD 11a491067
> PMD 0 [898029.810280]
> [898029.810904] Oops: 0002 [#1] PREEMPT SMP
> [898029.812239] Modules linked in: md5 testdump(O+) mcryptd uvesafb
> cfbfillrect cfbimgblt cn cfbcopyarea fbcon bitblit fbcon_rotate fbcon_ccw
> fbcon_ud fbcon_cw softcursor fb fbdev font ipv6 binfmt_misc mousedev
> af_packet psmouse pcspkr virtio_net virtio_balloon button ext4 crc16 jbd2
> mbcache dm_mod virtio_blk evdev virtio_pci virtio_ring virtio
> [898029.817178] CPU: 9 PID: 187 Comm: kworker/9:1 Tainted: G O
> 4.9.0-rc7+ #6
> [898029.818066] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
> [898029.818732] Workqueue: crypto mcryptd_queue_worker [mcryptd]
> [898029.819394] task: ffff88011aa2bd80 task.stack: ffff880118480000
> [898029.820077] RIP: 0010:[<ffffffffa022014d>] [<ffffffffa022014d>]
> md5_final+0xad/0x210 [md5]
> [898029.821050] RSP: 0018:ffff880118483d48 EFLAGS: 00010286
> [898029.821661] RAX: 04b2008fd98c1dd4 RBX: ffff880119cd7f28 RCX:
> 00000000980980e9
> [898029.822464] RDX: 7e42f8ec980980e9 RSI: 00000000ef1c4f74 RDI:
> ffff880119cd7f30
> [898029.823293] RBP: ffff880118483d68 R08: 000000001b99d513 R09:
> 0000000000000000
> [898029.824117] R10: 0000000000000000 R11: 00000000b8b56373 R12:
> ffff880119cd7f18
> [898029.824944] R13: 0000000000000000 R14: ffff880119cd7f38 R15:
> ffffffffa01ee43c
> [898029.825776] FS: 0000000000000000(0000) GS:ffff88011fd20000(0000)
> knlGS:0000000000000000
> [898029.826712] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [898029.827376] CR2: 0000000000000000 CR3: 000000011a6c9000 CR4:
> 00000000000006a0
> [898029.828204] Stack:
> [898029.828452] ffff880119cd7f18 ffff88011fd3bb00 0000000000000000
> ffff880119cd7e00
> [898029.829351] ffff880118483da0 ffffffff8119f281 ffff880119cd7f18
> ffff88011fd3bb00
> [898029.830242] ffff88011fd3bae0 ffff880119cd7e00 ffffffffa01ee43c
> ffff880119cd7ec8
> [898029.831141] Call Trace:
> [898029.831460] [<ffffffff8119f281>] ? crypto_shash_final+0x31/0xb0
> [898029.832151] [<ffffffffa01ee43c>] ? mcryptd_queue_worker+0x1c/0x190
> [mcryptd]
> [898029.832980] [<ffffffff8119f743>] ? shash_ahash_finup+0x73/0x80
> [898029.833672] [<ffffffff81016a5f>] ? __switch_to+0x27f/0x460
> [898029.834305] [<ffffffffa01eeabf>] ? mcryptd_hash_digest+0x4f/0x80
> [mcryptd]
> [898029.835125] [<ffffffffa01ee467>] ? mcryptd_queue_worker+0x47/0x190
> [mcryptd]
> [898029.835963] [<ffffffff8105974f>] ? process_one_work+0x1bf/0x3f0
> [898029.836681] [<ffffffff810599c2>] ? worker_thread+0x42/0x4c0
> [898029.837362] [<ffffffff81059980>] ? process_one_work+0x3f0/0x3f0
> [898029.838045] [<ffffffff81059980>] ? process_one_work+0x3f0/0x3f0
> [898029.838739] [<ffffffff8105ea49>] ? kthread+0xb9/0xd0
> [898029.839318] [<ffffffff8105e990>] ? kthread_park+0x70/0x70
> [898029.839959] [<ffffffff8131b965>] ? ret_from_fork+0x25/0x30
> [898029.840594] Code: 14 c5 00 00 00 00 48 c1 e8 1d 41 89 44 24 5c 41 89
> 54 24 58 e8 45 ea 0e e1 49 8b 44 24 10 49 8b 54 24 18 48 8d 7b 08 48 83 e7
> f8 <49> 89 45 00 49 89 55 08 31 c0 49 c7 44 24 10 00 00 00 00 48 c7
> [898029.843633] RIP [<ffffffffa022014d>] md5_final+0xad/0x210 [md5]
> [898029.844354] RSP <ffff880118483d48>
> [898029.844769] CR2: 0000000000000000
> [898029.845166] ---[ end trace 2ecde0bf66717337 ]---
>
next prev parent reply other threads:[~2016-12-02 1:47 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-02 0:00 Crash in crypto mcryptd Mikulas Patocka
2016-12-02 1:47 ` Tim Chen [this message]
2016-12-02 7:06 ` Eric Biggers
2016-12-02 18:30 ` Tim Chen
2016-12-03 0:16 ` Tim Chen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1480643222.3064.52.camel@linux.intel.com \
--to=tim.c.chen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=dm-devel@redhat.com \
--cc=herbert@gondor.apana.org.au \
--cc=linux-crypto@vger.kernel.org \
--cc=mbroz@redhat.com \
--cc=megha.dey@linux.intel.com \
--cc=mpatocka@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.