Juan Lang : crypt32: Fix potential buffer overruns in CertGetNameStringW.

Alexandre Julliard julliard at winehq.org
Thu Sep 10 09:07:33 CDT 2009


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Wed Sep  9 08:40:44 2009 -0700

crypt32: Fix potential buffer overruns in CertGetNameStringW.

---

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

diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c
index fa6eed9..b0a3d25 100644
--- a/dlls/crypt32/str.c
+++ b/dlls/crypt32/str.c
@@ -1018,7 +1018,7 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType,
         {
             if (!pszNameString)
                 ret = strlenW(entry->pwszRfc822Name) + 1;
-            else
+            else if (cchNameString)
             {
                 ret = min(strlenW(entry->pwszRfc822Name), cchNameString - 1);
                 memcpy(pszNameString, entry->pwszRfc822Name,
@@ -1103,7 +1103,7 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType,
                 {
                     if (!pszNameString)
                         ret = strlenW(entry->pwszRfc822Name) + 1;
-                    else
+                    else if (cchNameString)
                     {
                         ret = min(strlenW(entry->pwszRfc822Name),
                          cchNameString - 1);
@@ -1140,7 +1140,7 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType,
         {
             if (!pszNameString)
                 ret = strlenW(entry->pwszDNSName) + 1;
-            else
+            else if (cchNameString)
             {
                 ret = min(strlenW(entry->pwszDNSName), cchNameString - 1);
                 memcpy(pszNameString, entry->pwszDNSName, ret * sizeof(WCHAR));
@@ -1164,7 +1164,7 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType,
         {
             if (!pszNameString)
                 ret = strlenW(entry->pwszURL) + 1;
-            else
+            else if (cchNameString)
             {
                 ret = min(strlenW(entry->pwszURL), cchNameString - 1);
                 memcpy(pszNameString, entry->pwszURL, ret * sizeof(WCHAR));




More information about the wine-cvs mailing list