Juan Lang : crypt32: Be more strict about format of serialized store files.

Alexandre Julliard julliard at winehq.org
Mon Oct 1 07:54:57 CDT 2007


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Fri Sep 28 09:06:11 2007 -0700

crypt32: Be more strict about format of serialized store files.

---

 dlls/crypt32/serialize.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/dlls/crypt32/serialize.c b/dlls/crypt32/serialize.c
index 2884a4c..281ac3f 100644
--- a/dlls/crypt32/serialize.c
+++ b/dlls/crypt32/serialize.c
@@ -431,7 +431,11 @@ BOOL CRYPT_ReadSerializedStoreFromFile(HANDLE file, HCERTSTORE store)
     ret = ReadFile(file, fileHeaderBuf, sizeof(fileHeaderBuf), &read, NULL);
     if (ret)
     {
-        if (!memcmp(fileHeaderBuf, fileHeader, read))
+        if (!read)
+            ; /* an empty file is okay */
+        else if (read != sizeof(fileHeaderBuf))
+            ret = FALSE;
+        else if (!memcmp(fileHeaderBuf, fileHeader, read))
         {
             WINE_CERT_PROP_HEADER propHdr;
             const void *context = NULL;
@@ -503,6 +507,8 @@ BOOL CRYPT_ReadSerializedStoreFromFile(HANDLE file, HCERTSTORE store)
             CryptMemFree(buf);
             ret = TRUE;
         }
+        else
+            ret = FALSE;
     }
     else
         ret = TRUE;




More information about the wine-cvs mailing list