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