aboutsummaryrefslogtreecommitdiffstats
path: root/security/keys/big_key.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/keys/big_key.c')
-rw-r--r--security/keys/big_key.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/security/keys/big_key.c b/security/keys/big_key.c
index 835c1ab30d01..9f4c86cade8e 100644
--- a/security/keys/big_key.c
+++ b/security/keys/big_key.c
@@ -295,6 +295,7 @@ long big_key_read(const struct key *key, char __user *buffer, size_t buflen)
295 u8 *data; 295 u8 *data;
296 u8 *enckey = (u8 *)key->payload.data[big_key_data]; 296 u8 *enckey = (u8 *)key->payload.data[big_key_data];
297 size_t enclen = ALIGN(datalen, crypto_skcipher_blocksize(big_key_skcipher)); 297 size_t enclen = ALIGN(datalen, crypto_skcipher_blocksize(big_key_skcipher));
298 loff_t pos = 0;
298 299
299 data = kmalloc(enclen, GFP_KERNEL); 300 data = kmalloc(enclen, GFP_KERNEL);
300 if (!data) 301 if (!data)
@@ -307,7 +308,7 @@ long big_key_read(const struct key *key, char __user *buffer, size_t buflen)
307 } 308 }
308 309
309 /* read file to kernel and decrypt */ 310 /* read file to kernel and decrypt */
310 ret = kernel_read(file, 0, data, enclen); 311 ret = kernel_read(file, data, enclen, &pos);
311 if (ret >= 0 && ret != enclen) { 312 if (ret >= 0 && ret != enclen) {
312 ret = -EIO; 313 ret = -EIO;
313 goto err_fput; 314 goto err_fput;