summaryrefslogtreecommitdiffstats
path: root/generic/tclIOSock.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-07-27 15:13:36 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-07-27 15:13:36 (GMT)
commit8225b1fd250bbd3d71a52ca514ae343a91dfcdc5 (patch)
treea91dde691bf66a3e79e57ac8058f0ab98348bc68 /generic/tclIOSock.c
parentaf64c95042a9706c6d45118c8f341aafa5c26686 (diff)
parent192dc7dffdb4bd9d434e1f54830711df4fed4672 (diff)
downloadtcl-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.c12
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);
}
/*