diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-02-16 14:53:26 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-02-16 14:53:26 (GMT) |
| commit | 530446f68e748c71bcd26835ca42576d1dbdc17e (patch) | |
| tree | 2caf43bbba84e0760f39a1516972a2c1ac3f9893 /generic/tclStrToD.c | |
| parent | 9d7c90707095d35a8f27a6675b2e360c3cb486d2 (diff) | |
| download | tcl-530446f68e748c71bcd26835ca42576d1dbdc17e.zip tcl-530446f68e748c71bcd26835ca42576d1dbdc17e.tar.gz tcl-530446f68e748c71bcd26835ca42576d1dbdc17e.tar.bz2 | |
Fix [89de498973]: signed integer overflow in TclParseNumber()
Diffstat (limited to 'generic/tclStrToD.c')
| -rw-r--r-- | generic/tclStrToD.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/generic/tclStrToD.c b/generic/tclStrToD.c index 372fe77..1a1c2ac 100644 --- a/generic/tclStrToD.c +++ b/generic/tclStrToD.c @@ -1312,7 +1312,7 @@ TclParseNumber( objPtr->typePtr = &tclWideIntType; if (signum) { objPtr->internalRep.wideValue = - - (Tcl_WideInt) octalSignificandWide; + (Tcl_WideInt) (-octalSignificandWide); } else { objPtr->internalRep.wideValue = (Tcl_WideInt) octalSignificandWide; @@ -1327,7 +1327,7 @@ TclParseNumber( objPtr->typePtr = &tclIntType; if (signum) { objPtr->internalRep.longValue = - - (long) octalSignificandWide; + (long) (-octalSignificandWide); } else { objPtr->internalRep.longValue = (long) octalSignificandWide; @@ -1359,7 +1359,7 @@ TclParseNumber( objPtr->typePtr = &tclWideIntType; if (signum) { objPtr->internalRep.wideValue = - - (Tcl_WideInt) significandWide; + (Tcl_WideInt) (-significandWide); } else { objPtr->internalRep.wideValue = (Tcl_WideInt) significandWide; @@ -1374,7 +1374,7 @@ TclParseNumber( objPtr->typePtr = &tclIntType; if (signum) { objPtr->internalRep.longValue = - - (long) significandWide; + (long) (-significandWide); } else { objPtr->internalRep.longValue = (long) significandWide; |
