Module: wine Branch: master Commit: a5087e605158a2fa427e64718f6b41f494aad380 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a5087e605158a2fa427e64718f...
Author: Juan Lang juan.lang@gmail.com Date: Thu Oct 22 12:42:39 2009 -0700
wintrust: Make sure item size is at least the min size, and only align sizes that are greater.
---
dlls/wintrust/asn.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/wintrust/asn.c b/dlls/wintrust/asn.c index 6a525eb..69c9dd3 100644 --- a/dlls/wintrust/asn.c +++ b/dlls/wintrust/asn.c @@ -1525,8 +1525,13 @@ static BOOL CRYPT_AsnDecodeSequenceItems(DWORD dwCertEncodingType, : NULL, &items[i].size); if (ret) { - /* Account for alignment padding */ - items[i].size = ALIGN_DWORD_PTR(items[i].size); + if (items[i].size < items[i].minSize) + items[i].size = items[i].minSize; + else if (items[i].size > items[i].minSize) + { + /* Account for alignment padding */ + items[i].size = ALIGN_DWORD_PTR(items[i].size); + } TRACE("item %d size: %d\n", i, items[i].size); if (nextData && items[i].hasPointer && items[i].size > items[i].minSize)