From b9577c0641072a7e7060bad5357e549b75928132 Mon Sep 17 00:00:00 2001 From: sebres Date: Fri, 7 Sep 2018 10:45:30 +0000 Subject: closes [631b4c45df]: segfault by usage of wrong length (no string representation) --- generic/tclProc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/generic/tclProc.c b/generic/tclProc.c index dc58cb0..e51f5b3 100644 --- a/generic/tclProc.c +++ b/generic/tclProc.c @@ -504,10 +504,11 @@ TclCreateProc( goto procError; } - nameLength = Tcl_NumUtfChars(Tcl_GetString(fieldValues[0]), fieldValues[0]->length); + argname = Tcl_GetStringFromObj(fieldValues[0], &plen); + nameLength = Tcl_NumUtfChars(argname, plen); if (fieldCount == 2) { - valueLength = Tcl_NumUtfChars(Tcl_GetString(fieldValues[1]), - fieldValues[1]->length); + const char * value = TclGetString(fieldValues[1]); + valueLength = Tcl_NumUtfChars(value, fieldValues[1]->length); } else { valueLength = 0; } @@ -516,7 +517,6 @@ TclCreateProc( * Check that the formal parameter name is a scalar. */ - argname = Tcl_GetStringFromObj(fieldValues[0], &plen); argnamei = argname; argnamelast = argname[plen-1]; while (plen--) { -- cgit v0.12