Module: wine Branch: master Commit: 661525c6064a1da91c7bbcd11a0c2ff5583f8b0f URL: http://source.winehq.org/git/wine.git/?a=commit;h=661525c6064a1da91c7bbcd11a...
Author: Juan Lang juan.lang@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;