Author: pschweitzer
Date: Mon Feb 7 23:16:29 2011
New Revision: 50615
URL: http://svn.reactos.org/svn/reactos?rev=50615&view=rev
Log:
[USETUP]
Fix a really mean bug: wcslen() returns the size in characters whereas
MaximumLength has to be in bytes.
Now, this sets MaximumLength to its appropriate size and prevents some memory
issues (and buffers having odd size, which is weird for an unicode string...).
Modified:
trunk/reactos/base/setup/usetup/cabinet.c
Modified: trunk/reactos/base/setup/usetup/cabinet.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/cabinet.c?rev=50615&r1=50614&r2=50615&view=diff
==============================================================================
--- trunk/reactos/base/setup/usetup/cabinet.c [iso-8859-1] (original)
+++ trunk/reactos/base/setup/usetup/cabinet.c [iso-8859-1] Mon Feb 7 23:16:29
2011
@@ -890,7 +890,7 @@
RtlInitAnsiString(&AnsiString, Search->File->FileName);
wcscpy(DestName, DestPath);
- UnicodeString.MaximumLength = sizeof(DestName) - wcslen(DestName);
+ UnicodeString.MaximumLength = sizeof(DestName) - wcslen(DestName) *
sizeof(WCHAR);
UnicodeString.Buffer = DestName + wcslen(DestName);
UnicodeString.Length = 0;
RtlAnsiStringToUnicodeString(&UnicodeString, &AnsiString, FALSE);