Selaa lähdekoodia

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
Linus Torvalds 12 vuotta sitten
vanhempi
commit
54d1ae492f
2 muutettua tiedostoa jossa 8 lisäystä ja 8 poistoa
  1. 7 7
      kernel/module_signing.c
  2. 1 1
      lib/asn1_decoder.c

+ 7 - 7
kernel/module_signing.c

@@ -27,13 +27,13 @@
  *	- Information block
  *	- Information block
  */
  */
 struct module_signature {
 struct module_signature {
-	enum pkey_algo		algo : 8;	/* Public-key crypto algorithm */
-	enum pkey_hash_algo	hash : 8;	/* Digest algorithm */
-	enum pkey_id_type	id_type : 8;	/* Key identifier type */
-	u8			signer_len;	/* Length of signer's name */
-	u8			key_id_len;	/* Length of key identifier */
-	u8			__pad[3];
-	__be32			sig_len;	/* Length of signature data */
+	u8	algo;		/* Public-key crypto algorithm [enum pkey_algo] */
+	u8	hash;		/* Digest algorithm [enum pkey_hash_algo] */
+	u8	id_type;	/* Key identifier type [enum pkey_id_type] */
+	u8	signer_len;	/* Length of signer's name */
+	u8	key_id_len;	/* Length of key identifier */
+	u8	__pad[3];
+	__be32	sig_len;	/* Length of signature data */
 };
 };
 
 
 /*
 /*

+ 1 - 1
lib/asn1_decoder.c

@@ -91,7 +91,7 @@ next_tag:
 
 
 	/* Extract the length */
 	/* Extract the length */
 	len = data[dp++];
 	len = data[dp++];
-	if (len < 0x7f) {
+	if (len <= 0x7f) {
 		dp += len;
 		dp += len;
 		goto next_tag;
 		goto next_tag;
 	}
 	}