[ros-diffs] [pschweitzer] 50615: [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 preve...
pschweitzer at svn.reactos.org
pschweitzer at svn.reactos.org
Mon Feb 7 23:16:30 UTC 2011
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);
More information about the Ros-diffs
mailing list