diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-06-16 22:57:16 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-06-17 20:49:05 +0200 |
commit | 6b060c1dc5486cbf51f13d168c442e7df116b26c (patch) | |
tree | 45ab36ae9f4a405c22dc082b226c361e886fe726 /ncr-data.c | |
parent | 5797051e8b1f3ac4d6cc5edf181a04536b496d3d (diff) | |
download | cryptodev-linux-6b060c1dc5486cbf51f13d168c442e7df116b26c.tar.gz cryptodev-linux-6b060c1dc5486cbf51f13d168c442e7df116b26c.tar.xz cryptodev-linux-6b060c1dc5486cbf51f13d168c442e7df116b26c.zip |
Use current_euid() and task_pid_nr(current) to get identifiers for owners (for imposed limits).
Diffstat (limited to 'ncr-data.c')
-rw-r--r-- | ncr-data.c | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -92,19 +92,19 @@ static void* data_alloc(size_t size) void _ncr_data_item_put( struct data_item_st* item) { if (atomic_dec_and_test(&item->refcnt)) { - ncr_limits_remove(item->filp, LIMIT_TYPE_DATA); + ncr_limits_remove(item->uid, item->pid, LIMIT_TYPE_DATA); kfree(item->data); kfree(item); } } -int ncr_data_init(struct file *filp, struct list_sem_st* lst, void __user* arg) +int ncr_data_init(struct list_sem_st* lst, void __user* arg) { struct ncr_data_init_st init; struct data_item_st* data; int ret; - ret = ncr_limits_add_and_check(filp, LIMIT_TYPE_DATA); + ret = ncr_limits_add_and_check(current_euid(), task_pid_nr(current), LIMIT_TYPE_DATA); if (ret < 0) { err(); return ret; @@ -121,7 +121,9 @@ int ncr_data_init(struct file *filp, struct list_sem_st* lst, void __user* arg) memset(data, 0, sizeof(*data)); data->flags = init.flags; - data->filp = filp; + data->uid = current_euid(); + data->pid = task_pid_nr(current); + atomic_set(&data->refcnt, 1); data->data = data_alloc(init.max_object_size); @@ -140,7 +142,6 @@ int ncr_data_init(struct file *filp, struct list_sem_st* lst, void __user* arg) down(&lst->sem); data->desc = _ncr_data_get_new_desc(lst); - data->filp = filp; list_add(&data->list, &lst->list); |