advapi32: Fix bad comparison of unsigned variable
Andrew Talbot
Andrew.Talbot at talbotville.com
Mon Nov 13 15:59:24 CST 2006
Changelog:
advapi32: Fix bad comparison of unsigned variable.
diff -urN a/dlls/advapi32/crypt.c b/dlls/advapi32/crypt.c
--- a/dlls/advapi32/crypt.c 2006-10-03 16:06:00.000000000 +0100
+++ b/dlls/advapi32/crypt.c 2006-11-13 21:35:44.000000000 +0000
@@ -594,20 +594,27 @@
return FALSE;
}
- pProv->refcount--;
- if (pProv->refcount <= 0)
+ switch (pProv->refcount)
{
- ret = pProv->pFuncs->pCPReleaseContext(pProv->hPrivate, dwFlags);
- pProv->dwMagic = 0;
- FreeLibrary(pProv->hModule);
+ case 0:
+ break;
+ case 1:
+ ret = pProv->pFuncs->pCPReleaseContext(pProv->hPrivate, dwFlags);
+ pProv->dwMagic = 0;
+ FreeLibrary(pProv->hModule);
#if 0
- CRYPT_Free(pProv->pVTable->pContextInfo);
+ CRYPT_Free(pProv->pVTable->pContextInfo);
#endif
- CRYPT_Free(pProv->pVTable->pszProvName);
- CRYPT_Free(pProv->pVTable);
- CRYPT_Free(pProv->pFuncs);
- CRYPT_Free(pProv);
+ CRYPT_Free(pProv->pVTable->pszProvName);
+ CRYPT_Free(pProv->pVTable);
+ CRYPT_Free(pProv->pFuncs);
+ CRYPT_Free(pProv);
+ --pProv->refcount;
+ break;
+ default:
+ --pProv->refcount;
}
+
return ret;
}
More information about the wine-patches
mailing list