summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2012-05-21 16:48:39 (GMT)
committerdgp <dgp@users.sourceforge.net>2012-05-21 16:48:39 (GMT)
commit3d7e78f01cd6ddb05fa76bfc7aeb0c9c61392dfa (patch)
treec022ea2ecf0d6c718230934201019c089f7d78c3 /generic
parentf49f0d4398778f7334a25d9a419ebb1730eae6d4 (diff)
parent69a3b8bf74af2d9d9585e3906e92537d58f43919 (diff)
downloadtcl-3d7e78f01cd6ddb05fa76bfc7aeb0c9c61392dfa.zip
tcl-3d7e78f01cd6ddb05fa76bfc7aeb0c9c61392dfa.tar.gz
tcl-3d7e78f01cd6ddb05fa76bfc7aeb0c9c61392dfa.tar.bz2
When using Tcl_SetObjLength() calls to grow and shrink the objPtr->bytes buffer,
care must be taken that the value cannot possibly become pure Unicode. Calling Tcl_AppendToObj() has the possibility of making such a conversion. Bug found while valgrinding the trunk.
Diffstat (limited to 'generic')
-rw-r--r--generic/tclFileName.c4
-rw-r--r--generic/tclPathObj.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/generic/tclFileName.c b/generic/tclFileName.c
index 1fca08b..4c57256 100644
--- a/generic/tclFileName.c
+++ b/generic/tclFileName.c
@@ -857,7 +857,7 @@ TclpNativeJoinPath(
if (length > 0 && (start[length-1] != '/')) {
Tcl_AppendToObj(prefix, "/", 1);
- length++;
+ Tcl_GetStringFromObj(prefix, &length);
}
needsSep = 0;
@@ -893,7 +893,7 @@ TclpNativeJoinPath(
if ((length > 0) &&
(start[length-1] != '/') && (start[length-1] != ':')) {
Tcl_AppendToObj(prefix, "/", 1);
- length++;
+ Tcl_GetStringFromObj(prefix, &length);
}
needsSep = 0;
diff --git a/generic/tclPathObj.c b/generic/tclPathObj.c
index b6f3205..cde554c 100644
--- a/generic/tclPathObj.c
+++ b/generic/tclPathObj.c
@@ -1091,7 +1091,7 @@ Tcl_FSJoinPath(
if (length > 0 && ptr[length -1] != '/') {
Tcl_AppendToObj(res, &separator, 1);
- length++;
+ Tcl_GetStringFromObj(res, &length);
}
Tcl_SetObjLength(res, length + (int) strlen(strElt));