wintrust: Return error directly from SOFTPUB_LoadCatalogMessage.
This commit is contained in:
parent
9e8e14ed12
commit
528876c402
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue