diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-05-31 16:35:28 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-06-17 20:47:38 +0200 |
commit | b4c1ecb3c841e0d7f7453a93c30a5619b7f3ce4c (patch) | |
tree | b918291448e7842ffa9c06ee2cc74ac8b02525ad /ncr-data.c | |
parent | 1b3ea65db78ef3dcc8200812117171531c62fe8b (diff) | |
download | cryptodev-linux-b4c1ecb3c841e0d7f7453a93c30a5619b7f3ce4c.tar.gz cryptodev-linux-b4c1ecb3c841e0d7f7453a93c30a5619b7f3ce4c.tar.xz cryptodev-linux-b4c1ecb3c841e0d7f7453a93c30a5619b7f3ce4c.zip |
Added deinitialization of limits on module unloading. Better cleanup of unused data.
Diffstat (limited to 'ncr-data.c')
-rw-r--r-- | ncr-data.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -182,6 +182,7 @@ int ncr_data_get(struct list_sem_st* lst, void __user* arg) struct ncr_data_st get; struct data_item * data; size_t len; + int ret; copy_from_user( &get, arg, sizeof(get)); @@ -194,7 +195,8 @@ int ncr_data_get(struct list_sem_st* lst, void __user* arg) if (!(data->flags & NCR_DATA_FLAG_EXPORTABLE)) { err(); - return -EPERM; + ret = -EPERM; + goto cleanup; } len = min(get.data_size, data->data_size); @@ -206,9 +208,12 @@ int ncr_data_get(struct list_sem_st* lst, void __user* arg) if (len > 0) copy_to_user(get.data, data->data, len); + ret = 0; + +cleanup: _ncr_data_item_put( data); - return 0; + return ret; } int ncr_data_set(struct list_sem_st* lst, void __user* arg) |