Module: wine Branch: master Commit: 4ff40a670867f9a05037384b3802281b6dd9dbea URL: https://gitlab.winehq.org/wine/wine/-/commit/4ff40a670867f9a05037384b3802281...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Thu Apr 25 11:25:13 2024 +0300
rsaenh: Validate pbData in CPSetKeyParam().
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru
---
dlls/rsaenh/rsaenh.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c index 3a2d7126ca4..f854e35dfdf 100644 --- a/dlls/rsaenh/rsaenh.c +++ b/dlls/rsaenh/rsaenh.c @@ -3797,7 +3797,7 @@ BOOL WINAPI RSAENH_CPGetHashParam(HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwPa * CRYPT_EXPORT, CRYPT_READ, CRYPT_WRITE, CRYPT_MAC * - KP_IV: Initialization vector */ -BOOL WINAPI RSAENH_CPSetKeyParam(HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, +BOOL WINAPI RSAENH_CPSetKeyParam(HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD dwFlags) { CRYPTKEY *pCryptKey; @@ -3815,13 +3815,19 @@ BOOL WINAPI RSAENH_CPSetKeyParam(HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam SetLastError(NTE_BAD_FLAGS); return FALSE; } - + if (!lookup_handle(&handle_table, hKey, RSAENH_MAGIC_KEY, (OBJECTHDR**)&pCryptKey)) { SetLastError(NTE_BAD_KEY); return FALSE; } - + + if (!pbData) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + switch (dwParam) { case KP_PADDING: /* The MS providers only support PKCS5_PADDING */