diff options
author | Miloslav Trmač <mitr@redhat.com> | 2010-07-09 07:46:22 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-07-19 09:24:17 +0200 |
commit | d4ff8f6b5af0fbe652892702850d01cda4908971 (patch) | |
tree | ba929853d46f764b67fbf23440fb956b8f3fdad9 /ncr-key.c | |
parent | fcbbf1ec8f01d15f7afea161010580772139d38c (diff) | |
download | kernel-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.c | 7 |
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; } |