Aric Stewart : oleaut32: In variants check bOverflow to make sure not to accidently overun static buffers in an overflow case (Coverity 313).
Alexandre Julliard
julliard at winehq.org
Tue Oct 7 08:54:27 CDT 2008
Module: wine
Branch: master
Commit: 3b3ed7a0208fd655fc183cb70aba8af610212fc0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3b3ed7a0208fd655fc183cb70aba8af610212fc0
Author: Aric Stewart <aric at codeweavers.com>
Date: Fri Oct 3 10:24:06 2008 -0500
oleaut32: In variants check bOverflow to make sure not to accidently overun static buffers in an overflow case (Coverity 313).
---
dlls/oleaut32/variant.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/dlls/oleaut32/variant.c b/dlls/oleaut32/variant.c
index f6dcbf1..e96325f 100644
--- a/dlls/oleaut32/variant.c
+++ b/dlls/oleaut32/variant.c
@@ -2322,7 +2322,7 @@ HRESULT WINAPI VarNumFromParseNum(NUMPARSE *pNumprs, BYTE *rgbDig,
whole = whole * dblMultipliers[10];
multiplier10 -= 10;
}
- if (multiplier10)
+ if (multiplier10 && !bOverflow)
{
if (whole > dblMaximums[multiplier10])
{
@@ -2333,9 +2333,10 @@ HRESULT WINAPI VarNumFromParseNum(NUMPARSE *pNumprs, BYTE *rgbDig,
whole = whole * dblMultipliers[multiplier10];
}
- TRACE("Scaled double value is %16.16g\n", whole);
+ if (!bOverflow)
+ TRACE("Scaled double value is %16.16g\n", whole);
- while (divisor10 > 10)
+ while (divisor10 > 10 && !bOverflow)
{
if (whole < dblMinimums[10] && whole != 0)
{
@@ -2346,7 +2347,7 @@ HRESULT WINAPI VarNumFromParseNum(NUMPARSE *pNumprs, BYTE *rgbDig,
whole = whole / dblMultipliers[10];
divisor10 -= 10;
}
- if (divisor10)
+ if (divisor10 && !bOverflow)
{
if (whole < dblMinimums[divisor10] && whole != 0)
{
More information about the wine-cvs
mailing list