diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-07-27 15:13:36 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-07-27 15:13:36 (GMT) |
| commit | 8225b1fd250bbd3d71a52ca514ae343a91dfcdc5 (patch) | |
| tree | a91dde691bf66a3e79e57ac8058f0ab98348bc68 /generic/tclIOSock.c | |
| parent | af64c95042a9706c6d45118c8f341aafa5c26686 (diff) | |
| parent | 192dc7dffdb4bd9d434e1f54830711df4fed4672 (diff) | |
| download | tcl-8225b1fd250bbd3d71a52ca514ae343a91dfcdc5.zip tcl-8225b1fd250bbd3d71a52ca514ae343a91dfcdc5.tar.gz tcl-8225b1fd250bbd3d71a52ca514ae343a91dfcdc5.tar.bz2 | |
Rebase to 9.0. Add more filname encoding checks
Diffstat (limited to 'generic/tclIOSock.c')
| -rw-r--r-- | generic/tclIOSock.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/generic/tclIOSock.c b/generic/tclIOSock.c index c6cef55..4b2c637 100644 --- a/generic/tclIOSock.c +++ b/generic/tclIOSock.c @@ -75,7 +75,11 @@ TclSockGetPort( * Don't bother translating 'proto' to native. */ - native = Tcl_UtfToExternalDString(NULL, string, -1, &ds); + if (Tcl_UtfToExternalDStringEx(interp, TCLFSENCODING, string, -1, 0, &ds, NULL) != TCL_OK) { + Tcl_DStringFree(&ds); + return TCL_ERROR; + } + native = Tcl_DStringValue(&ds); sp = getservbyname(native, proto); /* INTL: Native. */ Tcl_DStringFree(&ds); if (sp != NULL) { @@ -184,7 +188,11 @@ TclCreateSocketAddress( int result; if (host != NULL) { - native = Tcl_UtfToExternalDString(NULL, host, -1, &ds); + if (Tcl_UtfToExternalDStringEx(interp, TCLFSENCODING, host, -1, 0, &ds, NULL) != TCL_OK) { + Tcl_DStringFree(&ds); + return 0; + } + native = Tcl_DStringValue(&ds); } /* |
