advapi32: correct bug in CryptEnumProviderTypesA and
CryptEnumProvidersA
Mounir IDRASSI
mounir.idrassi at idrix.fr
Wed May 2 15:12:20 CDT 2007
Hi,
The attached patch corrects a bug in CryptEnumProviderTypesA and
CryptEnumProvidersA provided by advapi32 dll. In case of failure, they
both report a wrong last error through GetLastError, because they don't
check the returned status of their wide-char counterpart.
Mounir IDRASSI
IDRIX - Cryptography and IT Security Experts
http://www.idrix.fr
-------------- next part --------------
>From ab7323952138e725700ded1bad4afd17e42717e7 Mon Sep 17 00:00:00 2001
From: Mounir IDRASSI <mounir.idrassi at idrix.fr>
Date: Wed, 2 May 2007 20:20:59 +0200
Subject: Correct bug in CryptEnumProviderTypesA and CryptEnumProvidersA: They report wrong last error in case of failure
---
dlls/advapi32/crypt.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/advapi32/crypt.c b/dlls/advapi32/crypt.c
index 1fd16c3..a7273b9 100644
--- a/dlls/advapi32/crypt.c
+++ b/dlls/advapi32/crypt.c
@@ -1139,7 +1139,8 @@ BOOL WINAPI CryptEnumProvidersA (DWORD dwIndex, DWORD *pdwReserved,
TRACE("(%d, %p, %08x, %p, %p, %p)\n", dwIndex, pdwReserved, dwFlags,
pdwProvType, pszProvName, pcbProvName);
- CryptEnumProvidersW(dwIndex, pdwReserved, dwFlags, pdwProvType, NULL, &strlen);
+ if(!CryptEnumProvidersW(dwIndex, pdwReserved, dwFlags, pdwProvType, NULL, &strlen))
+ return FALSE;
if ( pszProvName && !(str = CRYPT_Alloc(strlen)) )
{
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
@@ -1267,7 +1268,8 @@ BOOL WINAPI CryptEnumProviderTypesA (DWORD dwIndex, DWORD *pdwReserved,
TRACE("(%d, %p, %08x, %p, %p, %p)\n", dwIndex, pdwReserved, dwFlags,
pdwProvType, pszTypeName, pcbTypeName);
- CryptEnumProviderTypesW(dwIndex, pdwReserved, dwFlags, pdwProvType, NULL, &strlen);
+ if(!CryptEnumProviderTypesW(dwIndex, pdwReserved, dwFlags, pdwProvType, NULL, &strlen))
+ return FALSE;
if ( pszTypeName && !(str = CRYPT_Alloc(strlen)) )
{
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
--
1.4.4.2
More information about the wine-patches
mailing list