summaryrefslogtreecommitdiffstats
path: root/generic/tclObj.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclObj.c')
-rw-r--r--generic/tclObj.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/generic/tclObj.c b/generic/tclObj.c
index f1f4f1d..2a35539 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -2481,6 +2481,8 @@ UpdateStringOfDouble(
{
char *dst = Tcl_InitStringRep(objPtr, NULL, TCL_DOUBLE_SPACE);
+ TclOOM(dst, TCL_DOUBLE_SPACE + 1);
+
Tcl_PrintDouble(NULL, objPtr->internalRep.doubleValue, dst);
(void) Tcl_InitStringRep(objPtr, NULL, strlen(dst));
}
@@ -2672,9 +2674,11 @@ static void
UpdateStringOfInt(
register Tcl_Obj *objPtr) /* Int object whose string rep to update. */
{
+ char *dst = Tcl_InitStringRep( objPtr, NULL, TCL_INTEGER_SPACE);
+
+ TclOOM(dst, TCL_INTEGER_SPACE + 1);
(void) Tcl_InitStringRep(objPtr, NULL,
- TclFormatInt(Tcl_InitStringRep( objPtr, NULL, TCL_INTEGER_SPACE),
- objPtr->internalRep.longValue));
+ TclFormatInt(dst, objPtr->internalRep.longValue));
}
/*
@@ -2965,6 +2969,8 @@ UpdateStringOfWideInt(
{
char *dst = Tcl_InitStringRep(objPtr, NULL, TCL_INTEGER_SPACE + 2);
+ TclOOM(dst, TCL_INTEGER_SPACE + 3);
+
/*
* Note that sprintf will generate a compiler warning under Mingw claiming
* %I64 is an unknown format specifier. Just ignore this warning. We can't
@@ -3366,6 +3372,8 @@ UpdateStringOfBignum(
}
stringVal = Tcl_InitStringRep(objPtr, NULL, size - 1);
+
+ TclOOM(stringVal, size);
if (MP_OKAY != mp_toradix_n(&bignumVal, stringVal, 10, size)) {
Tcl_Panic("conversion failure in UpdateStringOfBignum");
}