diff options
Diffstat (limited to 'fs/ecryptfs/keystore.c')
-rw-r--r-- | fs/ecryptfs/keystore.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/ecryptfs/keystore.c b/fs/ecryptfs/keystore.c index f9965139c430..3a61f056acf6 100644 --- a/fs/ecryptfs/keystore.c +++ b/fs/ecryptfs/keystore.c | |||
@@ -1316,8 +1316,10 @@ parse_tag_3_packet(struct ecryptfs_crypt_stat *crypt_stat, | |||
1316 | rc = -EINVAL; | 1316 | rc = -EINVAL; |
1317 | goto out_free; | 1317 | goto out_free; |
1318 | } | 1318 | } |
1319 | ecryptfs_cipher_code_to_string(crypt_stat->cipher, | 1319 | rc = ecryptfs_cipher_code_to_string(crypt_stat->cipher, |
1320 | (u16)data[(*packet_size)]); | 1320 | (u16)data[(*packet_size)]); |
1321 | if (rc) | ||
1322 | goto out_free; | ||
1321 | /* A little extra work to differentiate among the AES key | 1323 | /* A little extra work to differentiate among the AES key |
1322 | * sizes; see RFC2440 */ | 1324 | * sizes; see RFC2440 */ |
1323 | switch(data[(*packet_size)++]) { | 1325 | switch(data[(*packet_size)++]) { |
@@ -1328,7 +1330,9 @@ parse_tag_3_packet(struct ecryptfs_crypt_stat *crypt_stat, | |||
1328 | crypt_stat->key_size = | 1330 | crypt_stat->key_size = |
1329 | (*new_auth_tok)->session_key.encrypted_key_size; | 1331 | (*new_auth_tok)->session_key.encrypted_key_size; |
1330 | } | 1332 | } |
1331 | ecryptfs_init_crypt_ctx(crypt_stat); | 1333 | rc = ecryptfs_init_crypt_ctx(crypt_stat); |
1334 | if (rc) | ||
1335 | goto out_free; | ||
1332 | if (unlikely(data[(*packet_size)++] != 0x03)) { | 1336 | if (unlikely(data[(*packet_size)++] != 0x03)) { |
1333 | printk(KERN_WARNING "Only S2K ID 3 is currently supported\n"); | 1337 | printk(KERN_WARNING "Only S2K ID 3 is currently supported\n"); |
1334 | rc = -ENOSYS; | 1338 | rc = -ENOSYS; |