diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-06 11:29:08 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-06 11:29:08 -0500 |
commit | 54d1ae492f724f103a07f69c8e429a35d43b5c52 (patch) | |
tree | c4cdcbc2d5223f7efea732cbf041da0ec2220912 | |
parent | cfd1f032f98e5ab3a04f23a0adbd53ff8744827d (diff) | |
parent | f3537f91f9be2ce5fcbaa1aa6d787ad0436daec6 (diff) |
Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux
Pull module signing fixes from Rusty Russell:
"David gave me these a month ago, during my git workflow churn :("
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
ASN.1: Fix an indefinite length skip error
MODSIGN: Don't use enum-type bitfields in module signature info block
-rw-r--r-- | kernel/module_signing.c | 14 | ||||
-rw-r--r-- | lib/asn1_decoder.c | 2 |
2 files changed, 8 insertions, 8 deletions
diff --git a/kernel/module_signing.c b/kernel/module_signing.c index ea1b1df5dbb0..f2970bddc5ea 100644 --- a/kernel/module_signing.c +++ b/kernel/module_signing.c | |||
@@ -27,13 +27,13 @@ | |||
27 | * - Information block | 27 | * - Information block |
28 | */ | 28 | */ |
29 | struct module_signature { | 29 | struct module_signature { |
30 | enum pkey_algo algo : 8; /* Public-key crypto algorithm */ | 30 | u8 algo; /* Public-key crypto algorithm [enum pkey_algo] */ |
31 | enum pkey_hash_algo hash : 8; /* Digest algorithm */ | 31 | u8 hash; /* Digest algorithm [enum pkey_hash_algo] */ |
32 | enum pkey_id_type id_type : 8; /* Key identifier type */ | 32 | u8 id_type; /* Key identifier type [enum pkey_id_type] */ |
33 | u8 signer_len; /* Length of signer's name */ | 33 | u8 signer_len; /* Length of signer's name */ |
34 | u8 key_id_len; /* Length of key identifier */ | 34 | u8 key_id_len; /* Length of key identifier */ |
35 | u8 __pad[3]; | 35 | u8 __pad[3]; |
36 | __be32 sig_len; /* Length of signature data */ | 36 | __be32 sig_len; /* Length of signature data */ |
37 | }; | 37 | }; |
38 | 38 | ||
39 | /* | 39 | /* |
diff --git a/lib/asn1_decoder.c b/lib/asn1_decoder.c index de2c8b5a715b..5293d2433029 100644 --- a/lib/asn1_decoder.c +++ b/lib/asn1_decoder.c | |||
@@ -91,7 +91,7 @@ next_tag: | |||
91 | 91 | ||
92 | /* Extract the length */ | 92 | /* Extract the length */ |
93 | len = data[dp++]; | 93 | len = data[dp++]; |
94 | if (len < 0x7f) { | 94 | if (len <= 0x7f) { |
95 | dp += len; | 95 | dp += len; |
96 | goto next_tag; | 96 | goto next_tag; |
97 | } | 97 | } |