summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-03-08 15:23:16 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-03-08 15:23:16 (GMT)
commit94033c98698f9311df88190fad45f190b4b829a8 (patch)
treeeec275c78dd36e57ad093cbabd18a25e54b2bee4
parentaaead6c7ae251886735590603d20616cc63a497f (diff)
downloadtcl-94033c98698f9311df88190fad45f190b4b829a8.zip
tcl-94033c98698f9311df88190fad45f190b4b829a8.tar.gz
tcl-94033c98698f9311df88190fad45f190b4b829a8.tar.bz2
Fix [9c7557160]: signed integer overflow in UpdateStringOfByteArray()
-rw-r--r--generic/tclBinary.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/generic/tclBinary.c b/generic/tclBinary.c
index fdb7f59..1c97728 100644
--- a/generic/tclBinary.c
+++ b/generic/tclBinary.c
@@ -565,14 +565,14 @@ UpdateStringOfByteArray(
size = length;
for (i = 0; i < length && size >= 0; i++) {
if ((src[i] == 0) || (src[i] > 127)) {
- size++;
+ size = (int)((unsigned int)size + 1U);
}
}
if (size < 0) {
Tcl_Panic("max size for a Tcl value (%d bytes) exceeded", INT_MAX);
}
- dst = (char *)ckalloc(size + 1);
+ dst = (char *)ckalloc((unsigned int)size + 1U);
objPtr->bytes = dst;
objPtr->length = size;