Attachment "obj-31.6-overflow.diff" to
ticket [4789e18fcb]
added by
chrstphrchvz
2022-02-17 00:12:41.
diff --git generic/tclUtil.c generic/tclUtil.c
index 858163e8..aed21c18 100644
--- generic/tclUtil.c
+++ generic/tclUtil.c
@@ -3730,7 +3730,8 @@ UpdateStringOfEndOffset(
memcpy(buffer, "end", 4);
if (objPtr->internalRep.longValue != 0) {
buffer[len++] = '-';
- len += TclFormatInt(buffer+len, -(objPtr->internalRep.longValue));
+ len += TclFormatInt(buffer+len,
+ (long)(-(unsigned long)(objPtr->internalRep.longValue)));
}
objPtr->bytes = (char *)ckalloc(len+1);
memcpy(objPtr->bytes, buffer, len+1);
@@ -3843,7 +3844,7 @@ SetEndOffsetFromAny(
if (bytes[3] == '-') {
/* TODO: Review overflow concerns here! */
- offset = -offset;
+ offset = (int)(-(unsigned int)offset);
}
} else {
/*