Juan Lang : crypt32: Make sure item size is at least the min size, and only align sizes that are greater.

Alexandre Julliard julliard at winehq.org
Fri Oct 23 10:18:59 CDT 2009


Module: wine
Branch: master
Commit: c593173d153d5fcde304a9285b1f930ede647c37
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c593173d153d5fcde304a9285b1f930ede647c37

Author: Juan Lang <juan.lang at gmail.com>
Date:   Thu Oct 22 13:31:00 2009 -0700

crypt32: Make sure item size is at least the min size, and only align sizes that are greater.

---

 dlls/crypt32/decode.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/dlls/crypt32/decode.c b/dlls/crypt32/decode.c
index 32e61cc..fa1cc63 100644
--- a/dlls/crypt32/decode.c
+++ b/dlls/crypt32/decode.c
@@ -357,8 +357,13 @@ static BOOL CRYPT_AsnDecodeSequenceItems(struct AsnDecodeSequenceItem items[],
                          : NULL, &items[i].size, &itemDecoded);
                         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)




More information about the wine-cvs mailing list