Hi all,

I enjoyed finding these while testing on a system where I'd forgotten to
enable gcm in the kernel.  I.e., these bugs are on error flows, and I
wouldn't expect to encounter them normally.

The Makefile tweak allowed me to select my kernel source, and worked well
for my cross compiling.

Kind regards,
Jaren

diff --git a/Makefile b/Makefile
index bca19ad..362ef95 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 KBUILD_CFLAGS += -I$(src)
-KERNEL_DIR = /lib/modules/$(shell uname -r)/build
+KERNEL_DIR ?= /lib/modules/$(shell uname -r)/build
 VERSION = 1.4
 
 cryptodev-objs = ioctl.o main.o cryptlib.o authenc.o zc.o util.o
diff --git a/cryptlib.c b/cryptlib.c
index 4bd073a..f031701 100644
--- a/cryptlib.c
+++ b/cryptlib.c
@@ -93,7 +93,7 @@ int cryptodev_cipher_init(struct cipher_data *out, const
char *alg_name,
                ret = crypto_ablkcipher_setkey(out->async.s, keyp, keylen);
        } else {
                out->async.as = crypto_alloc_aead(alg_name, 0, 0);
-               if (unlikely(IS_ERR(out->async.s))) {
+               if (unlikely(IS_ERR(out->async.as))) {
                        dprintk(1, KERN_DEBUG, "%s: Failed to load cipher
%s\n",
                                __func__, alg_name);
                        return -EINVAL;
diff --git a/ioctl.c b/ioctl.c
index 4093960..6e5cc61 100644
--- a/ioctl.c
+++ b/ioctl.c
@@ -464,6 +464,8 @@ cryptodev_open(struct inode *inode, struct file *filp)
 
        for (i = 0; i < DEF_COP_RINGSIZE; i++) {
                tmp = kzalloc(sizeof(struct todo_list_item), GFP_KERNEL);
+               if (!tmp)
+                       return -ENOMEM;
                pcr->itemcount++;
                dprintk(2, KERN_DEBUG, "%s: allocated new item at %lx\n",
                                __func__, (unsigned long)tmp);




_______________________________________________
Cryptodev-linux-devel mailing list
Cryptodev-linux-devel@gna.org
https://mail.gna.org/listinfo/cryptodev-linux-devel

Reply via email to