summaryrefslogtreecommitdiffstats
path: root/ncr-key.c
diff options
context:
space:
mode:
authorMiloslav Trmač <mitr@redhat.com>2010-07-09 07:46:22 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2010-07-19 09:24:17 +0200
commitd4ff8f6b5af0fbe652892702850d01cda4908971 (patch)
treeba929853d46f764b67fbf23440fb956b8f3fdad9 /ncr-key.c
parentfcbbf1ec8f01d15f7afea161010580772139d38c (diff)
downloadkernel-crypto-d4ff8f6b5af0fbe652892702850d01cda4908971.tar.gz
kernel-crypto-d4ff8f6b5af0fbe652892702850d01cda4908971.tar.xz
kernel-crypto-d4ff8f6b5af0fbe652892702850d01cda4908971.zip
Fix error paths in ncr_key_init
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
Diffstat (limited to 'ncr-key.c')
-rw-r--r--ncr-key.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ncr-key.c b/ncr-key.c
index b12f3a0447f..5693bdd3e6c 100644
--- a/ncr-key.c
+++ b/ncr-key.c
@@ -163,7 +163,8 @@ int ncr_key_init(struct list_sem_st* lst, void __user* arg)
key = kmalloc(sizeof(*key), GFP_KERNEL);
if (key == NULL) {
err();
- return -ENOMEM;
+ ret = -ENOMEM;
+ goto err_limits;
}
memset(key, 0, sizeof(*key));
@@ -183,6 +184,10 @@ int ncr_key_init(struct list_sem_st* lst, void __user* arg)
desc = key->desc;
return copy_to_user(arg, &desc, sizeof(desc));
+
+err_limits:
+ ncr_limits_remove(current_euid(), task_pid_nr(current), LIMIT_TYPE_KEY);
+ return ret;
}