projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
6352a29
)
eCryptfs: parse_tag_3_packet check tag 3 packet encrypted key size
author
Ramon de Carvalho Valle
<
[email protected]
>
Tue, 28 Jul 2009 18:58:22 +0000
(13:58 -0500)
committer
Linus Torvalds
<
[email protected]
>
Tue, 28 Jul 2009 21:26:06 +0000
(14:26 -0700)
The parse_tag_3_packet function does not check if the tag 3 packet contains a
encrypted key size larger than ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES.
Signed-off-by: Ramon de Carvalho Valle <
[email protected]
>
[
[email protected]
: Added printk newline and changed goto to out_free]
Signed-off-by: Tyler Hicks <
[email protected]
>
Cc:
[email protected]
(2.6.27 and 30)
Signed-off-by: Linus Torvalds <
[email protected]
>
fs/ecryptfs/keystore.c
patch
|
blob
|
history
diff --git
a/fs/ecryptfs/keystore.c
b/fs/ecryptfs/keystore.c
index 5414253d4c970d28f792c2790768341d65597216..259525c9abb8c0296f19fa3dc340b9ac29e70acd 100644
(file)
--- a/
fs/ecryptfs/keystore.c
+++ b/
fs/ecryptfs/keystore.c
@@
-1303,6
+1303,13
@@
parse_tag_3_packet(struct ecryptfs_crypt_stat *crypt_stat,
}
(*new_auth_tok)->session_key.encrypted_key_size =
(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)) {
printk(KERN_WARNING "Unknown version number [%d]\n",
data[(*packet_size) - 1]);