diff options
author | dgp <dgp@users.sourceforge.net> | 2018-02-15 15:58:36 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2018-02-15 15:58:36 (GMT) |
commit | 7a1cc7e3b33b8f9f64a8e50228c7e10187a67397 (patch) | |
tree | aec3a9bdac672e7e85817ad81962c86dc3dbd83a | |
parent | 0b90c0b92ef642157c6796ab26ebf3dade98b05a (diff) | |
download | tcl-7a1cc7e3b33b8f9f64a8e50228c7e10187a67397.zip tcl-7a1cc7e3b33b8f9f64a8e50228c7e10187a67397.tar.gz tcl-7a1cc7e3b33b8f9f64a8e50228c7e10187a67397.tar.bz2 |
Guarantee the buffer is large enough it will not be overrun.
-rw-r--r-- | generic/tclDisassemble.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/generic/tclDisassemble.c b/generic/tclDisassemble.c index 48206b5..e9aaec4 100644 --- a/generic/tclDisassemble.c +++ b/generic/tclDisassemble.c @@ -818,7 +818,7 @@ UpdateStringOfInstName( Tcl_Obj *objPtr) { size_t len, inst = (size_t)objPtr->internalRep.wideValue; - char *s, buf[20]; + char *s, buf[TCL_INTEGER_SPACE + 5]; if (inst > LAST_INST_OPCODE) { sprintf(buf, "inst_%" TCL_Z_MODIFIER "d", inst); @@ -827,6 +827,7 @@ UpdateStringOfInstName( s = (char *) tclInstructionTable[inst].name; } len = strlen(s); + /* assert (len < UINT_MAX) */ objPtr->bytes = ckalloc(len + 1); memcpy(objPtr->bytes, s, len + 1); objPtr->length = len; |