[PATCH] oleaut32: unshadow cmp to make code work (Coverity)
Marcus Meissner
marcus at jet.franken.de
Sun Jun 26 15:14:21 CDT 2011
Hi,
The code assumes "cmp" valid after the gotos, but it is a different
local variable, just with the same name which would work only by
pure luck and stack slot sharing.
Unshadow cmp to fix this.
CID 1805, 1804.
Ciao, Marcus
---
dlls/oleaut32/vartype.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/oleaut32/vartype.c b/dlls/oleaut32/vartype.c
index 2b1307e..3dd65d8 100644
--- a/dlls/oleaut32/vartype.c
+++ b/dlls/oleaut32/vartype.c
@@ -4562,6 +4562,7 @@ HRESULT WINAPI VarDecAdd(const DECIMAL* pDecLeft, const DECIMAL* pDecRight, DECI
/* Our decimals now have the same scale, we can add them as 96 bit integers */
ULONG overflow = 0;
BYTE sign = DECIMAL_POS;
+ int cmp;
/* Correct for the sign of the result */
if (DEC_SIGN(pDecLeft) && DEC_SIGN(pDecRight))
@@ -4572,7 +4573,7 @@ HRESULT WINAPI VarDecAdd(const DECIMAL* pDecLeft, const DECIMAL* pDecRight, DECI
}
else if (DEC_SIGN(pDecLeft) && !DEC_SIGN(pDecRight))
{
- int cmp = VARIANT_DecCmp(pDecLeft, pDecRight);
+ cmp = VARIANT_DecCmp(pDecLeft, pDecRight);
/* -x + y : Negative if x > y */
if (cmp > 0)
@@ -4593,7 +4594,7 @@ VarDecAdd_AsInvertedNegative:
}
else if (!DEC_SIGN(pDecLeft) && DEC_SIGN(pDecRight))
{
- int cmp = VARIANT_DecCmp(pDecLeft, pDecRight);
+ cmp = VARIANT_DecCmp(pDecLeft, pDecRight);
/* x + -y : Negative if x <= y */
if (cmp <= 0)
--
1.7.3.4
More information about the wine-patches
mailing list