summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ncr-key.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ncr-key.c b/ncr-key.c
index b12f3a0..5693bdd 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;
}