summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tclStringObj.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c
index 31a6b26..43f8016 100644
--- a/generic/tclStringObj.c
+++ b/generic/tclStringObj.c
@@ -2916,10 +2916,10 @@ TclStringCatObjv(
last = objc - oc;
if (length == 0) {
first = last;
- }
- if ((length += numBytes) < 0) {
+ } else if (numBytes > INT_MAX - length) {
goto overflow;
}
+ length += numBytes;
}
}
} while (--oc);
@@ -2937,10 +2937,10 @@ TclStringCatObjv(
last = objc - oc;
if (length == 0) {
first = last;
- }
- if ((length += numChars) < 0) {
+ } else if (numChars > INT_MAX - length) {
goto overflow;
}
+ length += numChars;
}
}
} while (--oc);
@@ -2973,10 +2973,10 @@ TclStringCatObjv(
}
if (length == 0) {
first = last;
- }
- if ((length += numBytes) < 0) {
+ } else if (numBytes > INT_MAX - length) {
goto overflow;
}
+ length += numBytes;
}
} while (--oc);
}