crypt32: Don't check decoded length against encoded length for indefinite-form sequences.
diff --git a/dlls/crypt32/decode.c b/dlls/crypt32/decode.c
index 082c28a..7bba04b 100644
--- a/dlls/crypt32/decode.c
+++ b/dlls/crypt32/decode.c
@@ -467,10 +467,14 @@
         {
             DWORD lenBytes = GET_LEN_BYTES(pbEncoded[1]), cbDecoded;
             const BYTE *ptr = pbEncoded + 1 + lenBytes;
+            BOOL indefinite = FALSE;
 
             cbEncoded -= 1 + lenBytes;
             if (dataLen == CMSG_INDEFINITE_LENGTH)
+            {
                 dataLen = cbEncoded;
+                indefinite = TRUE;
+            }
             else if (cbEncoded < dataLen)
             {
                 TRACE("dataLen %d exceeds cbEncoded %d, failing\n", dataLen,
@@ -501,7 +505,7 @@
                         cbDecoded += 2;
                 }
             }
-            if (ret && cbDecoded != dataLen)
+            if (ret && !indefinite && cbDecoded != dataLen)
             {
                 TRACE("expected %d decoded, got %d, failing\n", dataLen,
                  cbDecoded);