static BOOL SOFTPUB_LoadFileMessage(CRYPT_PROVIDER_DATA *data) { BOOL ret; if (!data->pWintrustData->u.pFile) { SetLastError(ERROR_INVALID_PARAMETER); ret = FALSE; goto error; } ret = SOFTPUB_OpenFile(data); if (!ret) goto error; ret = SOFTPUB_GetFileSubject(data); if (!ret) goto error; ret = SOFTPUB_GetSIP(data); if (!ret) goto error; ret = SOFTPUB_GetMessageFromFile(data, data->pWintrustData->u.pFile->hFile, data->pWintrustData->u.pFile->pcwszFilePath); if (!ret) goto error; ret = SOFTPUB_CreateStoreFromMessage(data); if (!ret) goto error; ret = SOFTPUB_DecodeInnerContent(data); error: return ret; }
static DWORD SOFTPUB_LoadFileMessage(CRYPT_PROVIDER_DATA *data) { DWORD err = ERROR_SUCCESS; if (!data->pWintrustData->u.pFile) { err = ERROR_INVALID_PARAMETER; goto error; } err = SOFTPUB_OpenFile(data); if (err) goto error; err = SOFTPUB_GetFileSubject(data); if (err) goto error; err = SOFTPUB_GetSIP(data); if (err) goto error; err = SOFTPUB_GetMessageFromFile(data, data->pWintrustData->u.pFile->hFile, data->pWintrustData->u.pFile->pcwszFilePath); if (err) goto error; err = SOFTPUB_CreateStoreFromMessage(data); if (err) goto error; err = SOFTPUB_DecodeInnerContent(data); error: if (err && data->fOpenedFile && data->pWintrustData->u.pFile) { /* The caller won't expect the file to be open on failure, so close it. */ CloseHandle(data->pWintrustData->u.pFile->hFile); data->pWintrustData->u.pFile->hFile = INVALID_HANDLE_VALUE; data->fOpenedFile = FALSE; } return err; }