diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-10-06 17:12:46 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-10-06 17:12:46 (GMT) |
| commit | ac711bcf45a5b5bd09e3102e5ea08f726237212f (patch) | |
| tree | aa1f8b68dd50c5e303d53ca13d43ef7639b4ea95 /win/tclWin32Dll.c | |
| parent | b5f75d3392ae32955aaef38e3d3af58119179a73 (diff) | |
| download | tcl-ac711bcf45a5b5bd09e3102e5ea08f726237212f.zip tcl-ac711bcf45a5b5bd09e3102e5ea08f726237212f.tar.gz tcl-ac711bcf45a5b5bd09e3102e5ea08f726237212f.tar.bz2 | |
protect Tcl_WinUtfToTChar/Tcl_WinTCharToUtf against NULL input values: return empty string in that case.
Add TIP #494-compatible definitions of TCL_IO_FAILURE/TCL_AUTO_LENGTH, and use it in some appropriate places.
Diffstat (limited to 'win/tclWin32Dll.c')
| -rw-r--r-- | win/tclWin32Dll.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/win/tclWin32Dll.c b/win/tclWin32Dll.c index 1a33514..04d27dd 100644 --- a/win/tclWin32Dll.c +++ b/win/tclWin32Dll.c @@ -472,6 +472,9 @@ Tcl_WinUtfToTChar( * converted string is stored. */ { Tcl_DStringInit(dsPtr); + if (!string) { + return (TCHAR *)Tcl_DStringValue(dsPtr); + } return Tcl_UtfToUniCharDString(string, len, dsPtr); } @@ -483,12 +486,15 @@ Tcl_WinTCharToUtf( Tcl_DString *dsPtr) /* Uninitialized or free DString in which the * converted string is stored. */ { + Tcl_DStringInit(dsPtr); + if (!string) { + return Tcl_DStringValue(dsPtr); + } if (len > 0) { len /= 2; } else if (len < 0) { len = wcslen(string); } - Tcl_DStringInit(dsPtr); return Tcl_UniCharToUtfDString(string, len, dsPtr); } |
