summaryrefslogtreecommitdiffstats
path: root/generic/tclHash.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-08-26 22:47:05 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-08-26 22:47:05 (GMT)
commitc1b4a8688f530f2fb6ab049c3304c1d11e385ebc (patch)
treef07981157616618425e2ecc2f9ba8387f230325a /generic/tclHash.c
parentce60b9f9bf7ea98961297c9757251a4abcdaa4de (diff)
downloadtcl-c1b4a8688f530f2fb6ab049c3304c1d11e385ebc.zip
tcl-c1b4a8688f530f2fb6ab049c3304c1d11e385ebc.tar.gz
tcl-c1b4a8688f530f2fb6ab049c3304c1d11e385ebc.tar.bz2
Use TclOffset() in stead of magic calculations using sizeof(), which might give unexpected results when padding is involved
Diffstat (limited to 'generic/tclHash.c')
-rw-r--r--generic/tclHash.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/generic/tclHash.c b/generic/tclHash.c
index 5de8168..709831d 100644
--- a/generic/tclHash.c
+++ b/generic/tclHash.c
@@ -722,7 +722,7 @@ AllocArrayEntry(
count = tablePtr->keyType;
- size = sizeof(Tcl_HashEntry) + (count*sizeof(int)) - sizeof(hPtr->key);
+ size = TclOffset(Tcl_HashEntry, key) + count*sizeof(int);
if (size < sizeof(Tcl_HashEntry)) {
size = sizeof(Tcl_HashEntry);
}
@@ -839,7 +839,7 @@ AllocStringEntry(
allocsize = sizeof(hPtr->key);
}
hPtr = ckalloc(TclOffset(Tcl_HashEntry, key) + allocsize);
- memset(hPtr, 0, sizeof(Tcl_HashEntry) + allocsize - sizeof(hPtr->key));
+ memset(hPtr, 0, TclOffset(Tcl_HashEntry, key) + allocsize);
memcpy(hPtr->key.string, string, size);
hPtr->clientData = 0;
return hPtr;