Explorar o código

bypass constructed type identification for sets / sequences

Christopher Brown %!s(int64=11) %!d(string=hai) anos
pai
achega
3cdb64eca6
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  1. 1 1
      src/pk/asn1/der/sequence/der_decode_sequence_flexi.c

+ 1 - 1
src/pk/asn1/der/sequence/der_decode_sequence_flexi.c

@@ -103,7 +103,7 @@ int der_decode_sequence_flexi(const unsigned char *in, unsigned long *inlen, ltc
          l = l->next;
       }
 
-      if ((is_constructed = ((type & 0x20) ? 1 : 0))) {
+      if ((is_constructed = (((type & 0x20) && type != 0x30 && type != 0x31) ? 1 : 0))) {
          /* constructed, use the 'used' field to store the original tag number */
          l->used = (type & 0x1F);
          /* treat constructed elements like SETs */