wine/dlls/secur32 secur32.c

Alexandre Julliard julliard at wine.codeweavers.com
Mon Nov 7 10:39:00 CST 2005


ChangeSet ID:	21138
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at winehq.org	2005/11/07 10:39:00

Modified files:
	dlls/secur32   : secur32.c 

Log message:
	Stefan Huehner <stefan at huehner.org>
	Fix segfault when querying non-existent SecurityProvider.

Patch: http://cvs.winehq.org/patch.py?id=21138

Old revision  New revision  Changes     Path
 1.12          1.13          +8 -3       wine/dlls/secur32/secur32.c

Index: wine/dlls/secur32/secur32.c
diff -u -p wine/dlls/secur32/secur32.c:1.12 wine/dlls/secur32/secur32.c:1.13
--- wine/dlls/secur32/secur32.c:1.12	7 Nov 2005 16:39: 0 -0000
+++ wine/dlls/secur32/secur32.c	7 Nov 2005 16:39: 0 -0000
@@ -573,16 +573,21 @@ static void SECUR32_initializeProviders(
 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)



More information about the wine-cvs mailing list