wintrust: Return error directly from SOFTPUB_LoadCatalogMessage.

This commit is contained in:
Juan Lang 2010-01-27 10:26:36 -08:00 committed by Alexandre Julliard
parent 9e8e14ed12
commit 528876c402
1 changed files with 25 additions and 16 deletions

View File

@ -364,9 +364,9 @@ error:
return err; return err;
} }
static BOOL SOFTPUB_LoadCatalogMessage(CRYPT_PROVIDER_DATA *data) static DWORD SOFTPUB_LoadCatalogMessage(CRYPT_PROVIDER_DATA *data)
{ {
BOOL ret; DWORD err;
HANDLE catalog = INVALID_HANDLE_VALUE; HANDLE catalog = INVALID_HANDLE_VALUE;
if (!data->pWintrustData->u.pCatalog) if (!data->pWintrustData->u.pCatalog)
@ -378,27 +378,36 @@ static BOOL SOFTPUB_LoadCatalogMessage(CRYPT_PROVIDER_DATA *data)
GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
NULL); NULL);
if (catalog == INVALID_HANDLE_VALUE) if (catalog == INVALID_HANDLE_VALUE)
return FALSE; return GetLastError();
ret = CryptSIPRetrieveSubjectGuid( if (!CryptSIPRetrieveSubjectGuid(
data->pWintrustData->u.pCatalog->pcwszCatalogFilePath, catalog, data->pWintrustData->u.pCatalog->pcwszCatalogFilePath, catalog,
&data->u.pPDSip->gSubject); &data->u.pPDSip->gSubject))
if (!ret) {
err = GetLastError();
goto error; goto error;
ret = SOFTPUB_GetSIP(data); }
if (!ret) if (!SOFTPUB_GetSIP(data))
{
err = GetLastError();
goto error; goto error;
ret = SOFTPUB_GetMessageFromFile(data, catalog, }
data->pWintrustData->u.pCatalog->pcwszCatalogFilePath); if (!SOFTPUB_GetMessageFromFile(data, catalog,
if (!ret) data->pWintrustData->u.pCatalog->pcwszCatalogFilePath))
{
err = GetLastError();
goto error; goto error;
ret = SOFTPUB_CreateStoreFromMessage(data); }
if (!ret) if (!SOFTPUB_CreateStoreFromMessage(data))
{
err = GetLastError();
goto error; goto error;
ret = SOFTPUB_DecodeInnerContent(data); }
if (!SOFTPUB_DecodeInnerContent(data))
err = GetLastError();
/* FIXME: this loads the catalog file, but doesn't validate the member. */ /* FIXME: this loads the catalog file, but doesn't validate the member. */
error: error:
CloseHandle(catalog); CloseHandle(catalog);
return ret; return err;
} }
HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data) HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data)
@ -420,7 +429,7 @@ HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data)
err = SOFTPUB_LoadFileMessage(data); err = SOFTPUB_LoadFileMessage(data);
break; break;
case WTD_CHOICE_CATALOG: case WTD_CHOICE_CATALOG:
ret = SOFTPUB_LoadCatalogMessage(data); err = SOFTPUB_LoadCatalogMessage(data);
break; break;
default: default:
FIXME("unimplemented for %d\n", data->pWintrustData->dwUnionChoice); FIXME("unimplemented for %d\n", data->pWintrustData->dwUnionChoice);