Commit 0bd29b12 authored by Juan Lang's avatar Juan Lang Committed by Alexandre Julliard

crypt32: Use decode function's returned decoded length to advance pointer when decoding an array.

parent ee28204f
......@@ -709,6 +709,8 @@ static BOOL CRYPT_AsnDecodeArray(const struct AsnArrayDescriptor *arrayDesc,
i < cItems && ptr - pbEncoded - 1 - lenBytes <
dataLen; i++)
{
DWORD itemDecoded;
if (arrayDesc->hasPointer)
*(BYTE **)(array->rgItems + i * arrayDesc->itemSize
+ arrayDesc->pointerOffset) = nextData;
......@@ -716,16 +718,11 @@ static BOOL CRYPT_AsnDecodeArray(const struct AsnArrayDescriptor *arrayDesc,
itemSizes[i].encodedLen,
dwFlags & ~CRYPT_DECODE_ALLOC_FLAG,
array->rgItems + i * arrayDesc->itemSize,
&itemSizes[i].size, NULL);
&itemSizes[i].size, &itemDecoded);
if (ret)
{
DWORD nextLen;
nextData += itemSizes[i].size - arrayDesc->itemSize;
ret = CRYPT_GetLen(ptr,
cbEncoded - (ptr - pbEncoded), &nextLen);
if (ret)
ptr += nextLen + 1 + GET_LEN_BYTES(ptr[1]);
ptr += itemDecoded;
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment