diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2012-06-21 11:02:52 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2012-06-21 11:02:52 (GMT) |
commit | 47f8473fed8224fbbb75d6cb95406cd13af68070 (patch) | |
tree | 15a7a0f70ec0c45c272f6df1fa8c04e12d6205ff /win/tclWinReg.c | |
parent | cf052af7a9a777686a38795916133d12e938984e (diff) | |
parent | b6f50b1321a5cd34af747eb670aad924fc66d7b7 (diff) | |
download | tcl-47f8473fed8224fbbb75d6cb95406cd13af68070.zip tcl-47f8473fed8224fbbb75d6cb95406cd13af68070.tar.gz tcl-47f8473fed8224fbbb75d6cb95406cd13af68070.tar.bz2 |
[Bug 3362446]: possible allocation error when using UNICODE
Diffstat (limited to 'win/tclWinReg.c')
-rw-r--r-- | win/tclWinReg.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/win/tclWinReg.c b/win/tclWinReg.c index 4c74d1b..343a22f 100644 --- a/win/tclWinReg.c +++ b/win/tclWinReg.c @@ -779,8 +779,8 @@ GetValue( */ Tcl_DStringInit(&data); - length = TCL_DSTRING_STATIC_SIZE - 1; - Tcl_DStringSetLength(&data, (int) length); + Tcl_DStringSetLength(&data, TCL_DSTRING_STATIC_SIZE - 1); + length = TCL_DSTRING_STATIC_SIZE / (regWinProcs->useWide ? 2 : 1) - 1; valueName = Tcl_GetStringFromObj(valueNameObj, &nameLen); nativeValue = Tcl_WinUtfToTChar(valueName, nameLen, &buf); @@ -795,7 +795,7 @@ GetValue( */ length *= 2; - Tcl_DStringSetLength(&data, (int) length); + Tcl_DStringSetLength(&data, (int) length * (regWinProcs->useWide ? 2 : 1)); result = (*regWinProcs->regQueryValueExProc)(key, (char *) nativeValue, NULL, &type, (BYTE *) Tcl_DStringValue(&data), &length); } |