"regtool -m set" writes 2 extra bytes at the end
Christopher Faylor
cygwin-use-the-mailinglist-please@cygwin.com
Sun Oct 31 03:47:00 GMT 2010
[Apologies for previously sending this as private email. Don't know how
that happened]
On Sun, Oct 31, 2010 at 03:37:31AM +0300, Dmitry Potapov wrote:
>Hi,
>
>The easiest way to demonstrate the problem is to run the following shell
>script:
>
>---- >8 ---
>regtool -m set /HKEY_LOCAL_MACHINE/SOFTWARE/Test 1234
>expected="31 00 32 00 33 00 34 00 00 00 00 00"
>actual="`regtool get -b /HKEY_LOCAL_MACHINE/SOFTWARE/Test`"
>
>if [ "$actual" != "$expected" ]; then
> echo FAILED
>else
> echo OK
>fi
>---- >8 ---
I've checked this in but isn't there one too many trailing "00 00"s in
the above, i.e., shouldn't it be "n" rather than "n + 1"?
>The patch is below.
Thanks for the patch.
cgf
>
>--- >8 ---
>Index: regtool.cc
>===================================================================
>RCS file: /cvs/src/src/winsup/utils/regtool.cc,v
>retrieving revision 1.30
>diff -u -r1.30 regtool.cc
>--- regtool.cc 28 Aug 2010 11:22:37 -0000 1.30
>+++ regtool.cc 30 Oct 2010 22:56:47 -0000
>@@ -711,7 +711,7 @@
> n += mbstowcs ((wchar_t *) data + n, argv[i], max_n - n) + 1;
> ((wchar_t *)data)[n] = L'\0';
> rv = RegSetValueExW (key, value, 0, REG_MULTI_SZ, (const BYTE *) data,
>- (max_n + 1) * sizeof (wchar_t));
>+ (n + 1) * sizeof (wchar_t));
> break;
> case REG_AUTO:
> rv = ERROR_SUCCESS;
>--- >8 ---
>
>
>Dmitry
>
More information about the Cygwin-patches
mailing list