summaryrefslogtreecommitdiffstats
path: root/ncr-storage.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2010-06-02 15:44:28 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2010-06-17 20:47:39 +0200
commitf72b0d07a071d20cf27ed1cc160de5bd675dc992 (patch)
treeb756eec7fd8402419580ce28d4723a3a21cf20e6 /ncr-storage.c
parent331c71959cab925c9a87d471f8d22be435566651 (diff)
downloadcryptodev-linux-f72b0d07a071d20cf27ed1cc160de5bd675dc992.tar.gz
cryptodev-linux-f72b0d07a071d20cf27ed1cc160de5bd675dc992.tar.xz
cryptodev-linux-f72b0d07a071d20cf27ed1cc160de5bd675dc992.zip
Added a netlink based storage fascility (server needs
to be implemented).
Diffstat (limited to 'ncr-storage.c')
-rw-r--r--ncr-storage.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/ncr-storage.c b/ncr-storage.c
index b5db4b1..15df0de 100644
--- a/ncr-storage.c
+++ b/ncr-storage.c
@@ -58,11 +58,9 @@ int _ncr_key_to_store(const struct key_item_st *key, const char* label,
switch(key->type) {
case NCR_KEY_TYPE_SECRET:
/* uint16_t size + raw key */
- output->raw_key = kmalloc(sizeof(uint8_t)+sizeof(uint16_t)+MAX_KEY_SIZE, GFP_KERNEL);
- if (output->raw_key == NULL) {
- err();
- return -ENOMEM;
- }
+ if (sizeof(output->raw_key) < key->key.secret.size + 2)
+ BUG();
+
output->raw_key[0] = (key->key.secret.size >> 8) & 0xff;
output->raw_key[1] = (key->key.secret.size) & 0xff;
memcpy(&output->raw_key[2], key->key.secret.data, key->key.secret.size);
@@ -121,8 +119,6 @@ int ncr_storage_store(struct list_sem_st* key_lst, void __user* arg)
}
ret = _ncr_store(&tostore);
- kfree(tostore.raw_key);
-
if (ret < 0) {
err();
goto fail;
@@ -175,8 +171,6 @@ int ncr_storage_load(struct list_sem_st* key_lst, void __user* arg)
}
ret = _ncr_store_to_key(&loaded, key);
- kfree(loaded.raw_key);
-
if (ret < 0) {
err();
goto fail;