diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-02-16 15:24:35 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-02-16 15:24:35 (GMT) |
| commit | d203d159b9f52796cd28cad53f0c6d777caadf11 (patch) | |
| tree | 53010b2267e0e65ad4a09ccbde87692f1180edbe | |
| parent | 530446f68e748c71bcd26835ca42576d1dbdc17e (diff) | |
| download | tcl-d203d159b9f52796cd28cad53f0c6d777caadf11.zip tcl-d203d159b9f52796cd28cad53f0c6d777caadf11.tar.gz tcl-d203d159b9f52796cd28cad53f0c6d777caadf11.tar.bz2 | |
Fix [c6fea6ba6]: possible signed integer overflow in Tcl_GetLongFromObj(), Tcl_GetWideIntFromObj()
| -rw-r--r-- | generic/tclObj.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/generic/tclObj.c b/generic/tclObj.c index 1fd674f..029d3c0 100644 --- a/generic/tclObj.c +++ b/generic/tclObj.c @@ -2816,7 +2816,7 @@ Tcl_GetLongFromObj( value = (value << CHAR_BIT) | *bytes++; } if (big.sign) { - *longPtr = - (long) value; + *longPtr = (long) (0-value); } else { *longPtr = (long) value; } @@ -3116,7 +3116,7 @@ Tcl_GetWideIntFromObj( value = (value << CHAR_BIT) | *bytes++; } if (big.sign) { - *wideIntPtr = - (Tcl_WideInt) value; + *wideIntPtr = (Tcl_WideInt) (0-value); } else { *wideIntPtr = (Tcl_WideInt) value; } |
