crypt32(9/20): More parameter checking for opening signed encoded messages

Juan Lang juan.lang at gmail.com
Mon Jul 23 20:29:20 CDT 2007


--Juan
-------------- next part --------------
From 41d983bff1ed519f198f32684e17df28c9adbaf2 Mon Sep 17 00:00:00 2001
From: Juan Lang <juanlang at juan.corp.google.com>
Date: Mon, 23 Jul 2007 17:35:17 -0700
Subject: [PATCH] More parameter checking for opening signed encoded messages
---
 dlls/crypt32/msg.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/dlls/crypt32/msg.c b/dlls/crypt32/msg.c
index c134e68..ce2ac3d 100644
--- a/dlls/crypt32/msg.c
+++ b/dlls/crypt32/msg.c
@@ -567,6 +567,17 @@ typedef struct _CMSG_SIGNED_ENCODE_INFO_
 
 static BOOL CRYPT_IsValidSigner(CMSG_SIGNER_ENCODE_INFO_WITH_CMS *signer)
 {
+    if (signer->cbSize != sizeof(CMSG_SIGNER_ENCODE_INFO) &&
+     signer->cbSize != sizeof(CMSG_SIGNER_ENCODE_INFO_WITH_CMS))
+    {
+        SetLastError(E_INVALIDARG);
+        return FALSE;
+    }
+    if (signer->cbSize == sizeof(CMSG_SIGNER_ENCODE_INFO_WITH_CMS))
+    {
+        FIXME("CMSG_SIGNER_ENCODE_INFO with CMS fields unsupported\n");
+        return FALSE;
+    }
     if (!signer->pCertInfo->SerialNumber.cbData)
     {
         SetLastError(E_INVALIDARG);
-- 
1.4.1


More information about the wine-patches mailing list