|
@@ -1303,6 +1303,13 @@ parse_tag_3_packet(struct ecryptfs_crypt_stat *crypt_stat,
|
|
}
|
|
}
|
|
(*new_auth_tok)->session_key.encrypted_key_size =
|
|
(*new_auth_tok)->session_key.encrypted_key_size =
|
|
(body_size - (ECRYPTFS_SALT_SIZE + 5));
|
|
(body_size - (ECRYPTFS_SALT_SIZE + 5));
|
|
|
|
+ if ((*new_auth_tok)->session_key.encrypted_key_size
|
|
|
|
+ > ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES) {
|
|
|
|
+ printk(KERN_WARNING "Tag 3 packet contains key larger "
|
|
|
|
+ "than ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES\n");
|
|
|
|
+ rc = -EINVAL;
|
|
|
|
+ goto out_free;
|
|
|
|
+ }
|
|
if (unlikely(data[(*packet_size)++] != 0x04)) {
|
|
if (unlikely(data[(*packet_size)++] != 0x04)) {
|
|
printk(KERN_WARNING "Unknown version number [%d]\n",
|
|
printk(KERN_WARNING "Unknown version number [%d]\n",
|
|
data[(*packet_size) - 1]);
|
|
data[(*packet_size) - 1]);
|