From cacd6930cf7caa54e575401e527dae2156bc8424 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 15 Dec 2021 16:58:08 +0000 Subject: Addendum to [41b1406f51]: change '<=' in range-check to '<' --- generic/tclStringObj.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index e30b9af..234ad0f 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -1738,7 +1738,7 @@ AppendUtfToUtfRep( */ if (bytes && objPtr->bytes && (bytes >= objPtr->bytes) - && (bytes <= objPtr->bytes + objPtr->length)) { + && (bytes < objPtr->bytes + objPtr->length)) { offset = bytes - objPtr->bytes; } -- cgit v0.12 From 187de15e2bd4cc19b14e2a9b97ca1b12d847a2c9 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 15 Dec 2021 17:03:03 +0000 Subject: Fix [90612089d8]: signed integer overflow in ExprRandFunc() --- generic/tclBasic.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/generic/tclBasic.c b/generic/tclBasic.c index fb85241..1cc22e1 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -7781,15 +7781,15 @@ ExprRandFunc( * take into consideration the thread this interp is running in. */ - iPtr->randSeed = TclpGetClicks() + (PTR2INT(Tcl_GetCurrentThread())<<12); + iPtr->randSeed = TclpGetClicks() + ((unsigned long)PTR2UINT(Tcl_GetCurrentThread())*4093); /* * Make sure 1 <= randSeed <= (2^31) - 2. See below. */ - iPtr->randSeed &= (unsigned long) 0x7FFFFFFF; - if ((iPtr->randSeed == 0) || (iPtr->randSeed == 0x7FFFFFFF)) { - iPtr->randSeed ^= 123459876; + iPtr->randSeed &= 0x7FFFFFFFL; + if ((iPtr->randSeed == 0) || (iPtr->randSeed == 0x7FFFFFFFL)) { + iPtr->randSeed ^= 123459876L; } } -- cgit v0.12 From b95cae5898b3abfb286c5bd99cb00bdd14049eb7 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Thu, 16 Dec 2021 08:03:39 +0000 Subject: Undo prevous commit. See [41b1406f51] for the reason --- generic/tclStringObj.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index 234ad0f..e30b9af 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -1738,7 +1738,7 @@ AppendUtfToUtfRep( */ if (bytes && objPtr->bytes && (bytes >= objPtr->bytes) - && (bytes < objPtr->bytes + objPtr->length)) { + && (bytes <= objPtr->bytes + objPtr->length)) { offset = bytes - objPtr->bytes; } -- cgit v0.12 From 76f73fbad9f75076442b2d7c0c4bab22583b26a4 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Thu, 16 Dec 2021 08:35:37 +0000 Subject: Fix [31e302fcf7]: signed integer overflow in generic/tclHash.c --- generic/tclHash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/tclHash.c b/generic/tclHash.c index bcf6eee..5de8168 100644 --- a/generic/tclHash.c +++ b/generic/tclHash.c @@ -35,7 +35,7 @@ */ #define RANDOM_INDEX(tablePtr, i) \ - ((((i)*1103515245L) >> (tablePtr)->downShift) & (tablePtr)->mask) + ((((i)*1103515245UL) >> (tablePtr)->downShift) & (tablePtr)->mask) /* * Prototypes for the array hash key methods. -- cgit v0.12 From fcc9c57804bed50e0acafd815c13b3426cb3f3d2 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Thu, 16 Dec 2021 09:02:59 +0000 Subject: Fix [6ef312dcf5]: memcpy() with NULL source in Tcl_CreateMathFunc() --- generic/tclBasic.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 875fec5..aebcab7 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -3551,7 +3551,9 @@ Tcl_CreateMathFunc( data->proc = proc; data->numArgs = numArgs; data->argTypes = (Tcl_ValueType *)ckalloc(numArgs * sizeof(Tcl_ValueType)); - memcpy(data->argTypes, argTypes, numArgs * sizeof(Tcl_ValueType)); + if ((numArgs > 0) && (argTypes != NULL)) { + memcpy(data->argTypes, argTypes, numArgs * sizeof(Tcl_ValueType)); + } data->clientData = clientData; Tcl_DStringInit(&bigName); -- cgit v0.12