ChangeSet ID: 21138 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard(a)winehq.org 2005/11/07 10:39:00 Modified files: dlls/secur32 : secur32.c Log message: Stefan Huehner <stefan(a)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)