summaryrefslogtreecommitdiffstats
path: root/generic/tclPathObj.c
diff options
context:
space:
mode:
authorsebres <sebres@users.sourceforge.net>2018-11-20 18:02:32 (GMT)
committersebres <sebres@users.sourceforge.net>2018-11-20 18:02:32 (GMT)
commit1aa5869ecef3ba22e6cf9dbd3a08725d5c1f4541 (patch)
tree68209a37eae8dac836cd9191f0ffcad76d45c034 /generic/tclPathObj.c
parent18b503297b6aa3a5d5b1c4827896daa930c1155a (diff)
downloadtcl-1aa5869ecef3ba22e6cf9dbd3a08725d5c1f4541.zip
tcl-1aa5869ecef3ba22e6cf9dbd3a08725d5c1f4541.tar.gz
tcl-1aa5869ecef3ba22e6cf9dbd3a08725d5c1f4541.tar.bz2
fixes segfault [7a9dc52b29]: unexpected decrement of the ref-count after TclJoinPath
Diffstat (limited to 'generic/tclPathObj.c')
-rw-r--r--generic/tclPathObj.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/generic/tclPathObj.c b/generic/tclPathObj.c
index 87ddfb7..5c30bcf 100644
--- a/generic/tclPathObj.c
+++ b/generic/tclPathObj.c
@@ -2515,8 +2515,12 @@ SetFsPathFromAny(
pair[0] = transPtr;
pair[1] = Tcl_NewStringObj(name+split+1, -1);
transPtr = TclJoinPath(2, pair);
- TclDecrRefCount(pair[0]);
- TclDecrRefCount(pair[1]);
+ if (transPtr != pair[0]) {
+ TclDecrRefCount(pair[0]);
+ }
+ if (transPtr != pair[1]) {
+ TclDecrRefCount(pair[1]);
+ }
}
}
Tcl_DStringFree(&temp);