From eb780e29b05e4b305500834483289f03ec085c7c Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Thu, 24 Apr 2008 21:54:04 -0700 Subject: [PATCH] advapi32: add more checks in CRYPT_CreateMachineGuid. --- dlls/advapi32/crypt.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/dlls/advapi32/crypt.c b/dlls/advapi32/crypt.c index 0fadc78..8d7b17e 100644 --- a/dlls/advapi32/crypt.c +++ b/dlls/advapi32/crypt.c @@ -298,12 +298,15 @@ static void CRYPT_CreateMachineGuid(void) RPC_STATUS (RPC_ENTRY *pRpcStringFree)(WCHAR **); UUID uuid; WCHAR *uuidStr; + RPC_STATUS rs; pUuidCreate = GetProcAddress(lib, "UuidCreate"); pUuidToString = GetProcAddress(lib, "UuidToStringW"); pRpcStringFree = GetProcAddress(lib, "RpcStringFreeW"); + if (!pUuidCreate || !pUuidToString || !pRpcStringFree) goto CreateMachineGuidCleaup; pUuidCreate(&uuid); - pUuidToString(&uuid, &uuidStr); + rs = pUuidToString(&uuid, &uuidStr); + if (rs != S_OK) goto CreateMachineGuidCleaup; RegSetValueExW(key, machineGuidW, 0, REG_SZ, (const BYTE *)uuidStr, (lstrlenW(uuidStr)+1)*sizeof(WCHAR)); @@ -311,6 +314,7 @@ static void CRYPT_CreateMachineGuid(void) FreeLibrary(lib); } } +CreateMachineGuidCleaup: RegCloseKey(key); } } -- 1.5.3.6