http://bugs.winehq.org/show_bug.cgi?id=11806
Summary: regedit creates bogus hex:(1) value instead of empty "" Product: Wine Version: 0.9.56. Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: hoehle@users.sourceforge.net
The attached .reg file causes regedit to create weird entries "Key"=hex(1): for empty string fields in .wine/{system,user}.reg instead of the regular "Key"="".
This regresssion appeared somewhere between 0.9.49 and .53.
Regedit displays a few characters of random garbage in the input field when attempting to edit those keys. No error is seen. Clearing the input in the regedit GUI causes .wine/*.reg to contain a normal "" value.
Applications complain about their registry settings when regedit produced these weird values. Some application's installers create such bogus entries, e.g. Crazy Machines from Pepper Games.
Bogus: 0.9.53, 0.9.54, 0.9.56; ok: 0.9.48, 0.9.49 [Software\WineRegBug\FooBar] 1201951655 "Language"=dword:00000001 "Title"="Foo Bar" "SaveDir"=""
The bogus entry appears as: "SaveDir"=hex(1):
Regards, Jörg Höhle
http://bugs.winehq.org/show_bug.cgi?id=11806
--- Comment #1 from Jörg Höhle hoehle@users.sourceforge.net 2008-03-01 14:50:03 --- Created an attachment (id=11067) --> (http://bugs.winehq.org/attachment.cgi?id=11067) .reg file creates bogus "SaveDir"=hex(1): entry
"SaveDir"="" is the expected output.
http://bugs.winehq.org/show_bug.cgi?id=11806
Lei Zhang thestig@google.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |programs Keywords| |regression
--- Comment #2 from Lei Zhang thestig@google.com 2008-03-01 16:06:09 --- Can you do a quick regression test? This is likely the cause:
http://source.winehq.org/git/wine.git/?a=commit;h=98c133312f20670afed6bbc54c...
http://bugs.winehq.org/show_bug.cgi?id=11806
--- Comment #3 from Austin English austinenglish@gmail.com 2008-03-01 19:20:05 --- For what its worth, try just reverting that patch on current git...
$ git revert 98c133312f20670afed6bbc54cc9aa43ed6c65fa
http://bugs.winehq.org/show_bug.cgi?id=11806
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Keywords|regression | Resolution| |FIXED
--- Comment #4 from Alexandre Julliard julliard@winehq.org 2008-03-03 10:17:42 --- That's not really a regression, the bug has always been there, but it was masked by the fact that zero-length values used not to be saved properly. It should be fixed now.
http://bugs.winehq.org/show_bug.cgi?id=11806
--- Comment #5 from Jörg Höhle hoehle@users.sourceforge.net 2008-03-03 10:32:56 --- Alexandre, that was it. Now "" is created. I'll test later if this patch to regedit also fixes the program's installers output (I wonder whether they start regedit as part of their job), e.g. Crazy Machines.
http://bugs.winehq.org/show_bug.cgi?id=11806
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #6 from Alexandre Julliard julliard@winehq.org 2008-03-07 11:28:59 --- Closing bugs fixed in 0.9.57.
http://bugs.winehq.org/show_bug.cgi?id=11806
Jörg Höhle hoehle@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|CLOSED |UNCONFIRMED Component|programs |msi Keywords| |regression Resolution|FIXED | Version|0.9.56. |0.9.59.
--- Comment #7 from Jörg Höhle hoehle@users.sourceforge.net 2008-04-16 15:37:06 --- Alas, I'm sorry to observe that while the hex(1): bug is gone when caused by .reg files, it is still observable in 0.9.59 when installing from .msi or .exe files. Reassigning bug from component programs to msi. E.g. Crazy Machines Operation Brainstorm creates entries like follows in system.reg:
[Software\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\85CE54EF3148B8048BDB0C1577B9A55E] 1208373578 "F8702CE0940AAD74EB88A2AC7CFA81AE"=hex(1):
[Software\Microsoft\Windows\CurrentVersion\Uninstall\{0EC2078F-A049-47DA-BE88-2ACAC7AF18EA}] 1208373578 "AuthorizedCDFPrefix"=hex(1): "Comments"=hex(1): "Contact"=hex(1): "DisplayIcon"="C:\Programme\Games\CrazyMachinesOB\CrazyMachinesOB.exe,0" "DisplayName"="Crazy Machines - Operation Brainstorm" "DisplayVersion"="1.12"
http://bugs.winehq.org/show_bug.cgi?id=11806
Jörg Höhle hoehle@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |Installer
http://bugs.winehq.org/show_bug.cgi?id=11806
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dank@kegel.com
--- Comment #8 from Dan Kegel dank@kegel.com 2008-04-20 18:24:31 --- I can't find Crazy Machines Operation Brainstorm on the web. Got a URL? Got any other examples?
http://bugs.winehq.org/show_bug.cgi?id=11806
--- Comment #9 from Jörg Höhle hoehle@users.sourceforge.net 2008-04-22 06:19:11 --- I found the following URLs http://www.crazy-machines.com/CMERF_GER/CMERF_GER.html The english page does not mention as many files for download as the german one. news/screenshots/downloads/etc.
"die Erfinderwerkstatt" (inventor's workshop) 31MB: http://217.160.88.86/download/CrazyMachinesDemoDE.exe "neue Herausforderungen" (new challenges) 40MB: http://www.crazy-machines.com/Downloads/CrazyManchinesNHDemoDE.exe
Alas, the description doesn't tell which of these, if any, corresponds to "Operation Brainstorm".
http://bugs.winehq.org/show_bug.cgi?id=11806
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #10 from Alexandre Julliard julliard@winehq.org 2008-04-23 08:00:23 --- The msi part should be fixed now.
http://bugs.winehq.org/show_bug.cgi?id=11806
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Alexandre Julliard julliard@winehq.org 2008-05-02 12:37:39 --- Closing bugs fixed in 0.9.61.
http://bugs.winehq.org/show_bug.cgi?id=11806
Jörg Höhle hoehle@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|CLOSED |UNCONFIRMED Resolution|FIXED |
--- Comment #12 from Jörg Höhle hoehle@users.sourceforge.net 2008-05-09 05:45:19 --- I'm sorry to reopen this bug another time. While I can confirm that the Crazy Machines installer does not exhibit the symptom anymore in 0.9.61, both the FIFA 2002 installer (InstallShield) and running the FIFA2002\3DSetup program produce:
[HKLM\Software\EA SPORTS\2002 FIFA World Cup TM] "3D Card"=hex(1): "3D Device Description"=hex(1): "Group"=hex(1): "Thrash Driver"=hex(1):
I've attached a +reg trace of 3DSetup overwriting good "" entries with hex(1):. Surprisingly, the FIFA2001 demo is not affected. I've not tried and found a FIFA2002 demo to compare.
In the trace, I see nothing more than an innocent looking trace:reg:NtSetValueKey (0x5c,L"3D Card",1,0x12fa50,0)
http://bugs.winehq.org/show_bug.cgi?id=11806
--- Comment #13 from Jörg Höhle hoehle@users.sourceforge.net 2008-05-09 05:47:12 --- Created an attachment (id=12841) --> (http://bugs.winehq.org/attachment.cgi?id=12841) +reg trace when creating bogus hex(1): entries from 3DSetup.exe
http://bugs.winehq.org/show_bug.cgi?id=11806
--- Comment #14 from Alexandre Julliard julliard@winehq.org 2008-05-09 06:24:16 --- An NtSetValue with a 0 length will create a hex(1) entry, that's not a bug unless the call is made by Wine itself. In this case it seems clearly to be made by the app.
http://bugs.winehq.org/show_bug.cgi?id=11806
James Hawkins truiken@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|msi |-unknown
--- Comment #15 from James Hawkins truiken@gmail.com 2008-05-13 00:01:34 --- The msi part is fixed.
http://bugs.winehq.org/show_bug.cgi?id=11806
--- Comment #16 from Jörg Höhle hoehle@users.sourceforge.net 2008-05-13 05:45:07 --- Alexandre wrote:
[...] will create a hex(1) entry, that's not a bug
Ok. However, if hex(1): is acceptable in the registry, then regedit must cope with it. In wine-0.9.61, I still observed garbage characters IIRC for such values, as explained in my original post. And I observed the following in 0.9.61: Exporting these keys to a file resulted in garbage output. More precisely, the value from a previously (correct) key-value line is emitted again (e.g. the value from the previous line of output duplicated, if it was a string).
Still, I'd expect empty strings to be written as "", not as hex(1):, because that's what I see in registry files from MS-Windows.
http://bugs.winehq.org/show_bug.cgi?id=11806
--- Comment #17 from Alexandre Julliard julliard@winehq.org 2008-05-13 06:06:16 --- (In reply to comment #16)
Still, I'd expect empty strings to be written as "", not as hex(1):, because that's what I see in registry files from MS-Windows.
Maybe in a text file exported from regedit, but in the actual registry files they have to be stored as hex(1):. which is not the same thing as an empty string (a proper empty string contains one null character).
http://bugs.winehq.org/show_bug.cgi?id=11806
--- Comment #18 from Jörg Höhle hoehle@users.sourceforge.net 2008-05-13 07:03:27 --- (In reply to comment #17) Thanks for the clarification. But if the entry is of string type, is there something like a string with no terminating 0? How could regedit produce such a value given a simple string input dialog window? (Does no \0 make sense for a string?)
In dlls/ntdll/reg.c:NtSetValueKey() I see the following comment: "win95 does not care about count for REG_SZ and finds out len by itself (js) NT does definitely care (aj)". Apparently, win95 would never store a non-\0-terminated string. What I will do is run FIFA2002 under various winecfg settings of w98/wme/w2k,wxp (which the application claims to support) and see if results differ -- and if I can get it to finally work.
http://bugs.winehq.org/show_bug.cgi?id=11806
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #19 from Alexandre Julliard julliard@winehq.org 2008-05-13 14:13:44 --- The remaining regedit issues should be fixed now.
http://bugs.winehq.org/show_bug.cgi?id=11806
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #20 from Alexandre Julliard julliard@winehq.org 2008-05-23 10:37:51 --- Closing bugs fixed in 1.0-rc2.