Fix segfault when querying non-existent SecurityProvider.
diff --git a/dlls/secur32/secur32.c b/dlls/secur32/secur32.c
index a6fb7eb..36ea425 100644
--- a/dlls/secur32/secur32.c
+++ b/dlls/secur32/secur32.c
@@ -573,16 +573,21 @@
SecurePackage *SECUR32_findPackageW(PWSTR packageName)
{
SecurePackage *ret = NULL;
+ BOOL matched = FALSE;
if (packageTable && packageName)
{
LIST_FOR_EACH_ENTRY(ret, &packageTable->table, SecurePackage, entry)
{
- if (!lstrcmpiW(ret->infoW.Name, packageName))
- break;
+ matched = !lstrcmpiW(ret->infoW.Name, packageName);
+ if (matched)
+ break;
}
- if (ret && ret->provider && !ret->provider->loaded)
+ if (!matched)
+ return NULL;
+
+ if (ret->provider && !ret->provider->loaded)
{
ret->provider->lib = LoadLibraryW(ret->provider->moduleName);
if (ret->provider->lib)