http://bugs.winehq.org/show_bug.cgi?id=32327
Bug #: 32327 Summary: Visio 2010 Std installer fails Product: Wine Version: 1.5.18 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: advapi32 AssignedTo: wine-bugs@winehq.org ReportedBy: bunglehead@gmail.com Classification: Unclassified
Created attachment 42670 --> http://bugs.winehq.org/attachment.cgi?id=42670 +advapi,+tid
Visio 2010 Standard fails to install since these commits:
--- commit 5851032d07c321f2c050187115cfd8e21b5f3f49 Author: Erich Hoover ehoover@mines.edu Date: Mon Nov 26 12:08:57 2012 -0700
advapi: Implement SetNamedSecurityInfoW on top of SetSecurityInfo. --- and --- commit 722c2b1008416ff72be4e1d60060e79957061584 Author: Erich Hoover ehoover@mines.edu Date: Mon Nov 26 12:13:47 2012 -0700
advapi: Implement GetNamedSecurityInfoW on top of GetSecurityInfo. ---
You'll need to revert both to fix that regression.
http://bugs.winehq.org/show_bug.cgi?id=32327
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression Regression SHA1| |5851032d07c321f2c050187115c | |fd8e21b5f3f49
http://bugs.winehq.org/show_bug.cgi?id=32327
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ehoover@mines.edu
http://bugs.winehq.org/show_bug.cgi?id=32327
Erich Hoover ehoover@mines.edu changed:
What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|wine-bugs@winehq.org |ehoover@mines.edu
--- Comment #1 from Erich Hoover ehoover@mines.edu 2012-11-29 13:20:43 CST --- Created attachment 42671 --> http://bugs.winehq.org/attachment.cgi?id=42671 Add a FIXME message for non-file security objects.
Please try the attached patch.
http://bugs.winehq.org/show_bug.cgi?id=32327
--- Comment #2 from Nikolay Sivov bunglehead@gmail.com 2012-11-29 13:43:04 CST --- Created attachment 42672 --> http://bugs.winehq.org/attachment.cgi?id=42672 +advapi,+tid log with patch
Yes, it works with this hack. I think it's not that hard to implement service case with QueryServiceObjectSecurity/SetServiceObjectSecurity. So Get/SetSecurityInfo needs to handle service handles (they are not accessible with NtSetSecurityObject(), at least not in wine) and *Named* calls need to use service api for service objects instead of NtCreateFile().
http://bugs.winehq.org/show_bug.cgi?id=32327
Erich Hoover ehoover@mines.edu changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #42671|0 |1 is obsolete| |
--- Comment #3 from Erich Hoover ehoover@mines.edu 2012-11-29 14:46:01 CST --- Created attachment 42674 --> http://bugs.winehq.org/attachment.cgi?id=42674 Support service objects in GetNamedSecurityInfo
How's this updated one work out?
http://bugs.winehq.org/show_bug.cgi?id=32327
Erich Hoover ehoover@mines.edu changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #42674|0 |1 is obsolete| |
--- Comment #4 from Erich Hoover ehoover@mines.edu 2012-11-29 14:52:49 CST --- Created attachment 42675 --> http://bugs.winehq.org/attachment.cgi?id=42675 Support service objects in GetNamedSecurityInfo [v2]
Whoops, old version didn't include everything.
http://bugs.winehq.org/show_bug.cgi?id=32327
--- Comment #5 from Nikolay Sivov bunglehead@gmail.com 2012-11-29 23:57:29 CST --- (In reply to comment #4)
Created attachment 42675 [details] Support service objects in GetNamedSecurityInfo [v2]
Whoops, old version didn't include everything.
You need to call public service api instead of using these implementation details. I'll test it later today.
http://bugs.winehq.org/show_bug.cgi?id=32327
--- Comment #6 from Erich Hoover ehoover@mines.edu 2012-11-30 00:47:13 CST --- (In reply to comment #5)
(In reply to comment #4)
Created attachment 42675 [details] Support service objects in GetNamedSecurityInfo [v2]
Whoops, old version didn't include everything.
You need to call public service api instead of using these implementation details. I'll test it later today.
The public service API doesn't return the status code, it sets the last error and just returns success or failure. Alexandre didn't seem a fan of hard coding errors like that with CreateFile vs NtCreateFile, though NtCreateFile is "more" public - so that might be different.
http://bugs.winehq.org/show_bug.cgi?id=32327
--- Comment #7 from Nikolay Sivov bunglehead@gmail.com 2012-11-30 01:26:31 CST --- Patch seems to work. (In reply to comment #6)
(In reply to comment #5)
The public service API doesn't return the status code, it sets the last error and just returns success or failure. Alexandre didn't seem a fan of hard coding errors like that with CreateFile vs NtCreateFile, though NtCreateFile is "more" public - so that might be different.
True, I missed that. Yes, messing with GetLastError() is not nice if you don't have to. Better way as I see it would be to add couple of helpers like open_scmanager() and open_service() that fully return status and use them to implement OpenSCManagerW() etc., and then you can use them for this security stuff.
Also patch needs cleanup like:
- moving RtlDosPathNameToNtPathName_U() closer to NtCreateFile as it's no needed otherwise; - you can't use CloseHandle() on SC_HANDLE, and 'hFile' name is just a 'handle' now;
Probably it needs splitting too, to separate *Named* part from handle part.
http://bugs.winehq.org/show_bug.cgi?id=32327
Erich Hoover ehoover@mines.edu changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #42675|0 |1 is obsolete| |
--- Comment #8 from Erich Hoover ehoover@mines.edu 2012-11-30 09:33:28 CST --- Created attachment 42677 --> http://bugs.winehq.org/attachment.cgi?id=42677 Support service objects in GetNamedSecurityInfo [v3]
Please take a look at the revised patch (attached).
(In reply to comment #7)
... Probably it needs splitting too, to separate *Named* part from handle part.
I planned on submitting the FIXME w/ immediate return as a separate patch. Do you really think GetSecurityInfo part needs to be separate from the GetNamedSecurityInfo portion? That portion seems pretty minor.
http://bugs.winehq.org/show_bug.cgi?id=32327
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Visio 2010 Std installer |Office 2010, Visio 2010 Std |fails |installers fail
--- Comment #9 from Nikolay Sivov bunglehead@gmail.com 2012-12-02 12:58:40 CST --- (In reply to comment #8)
Created attachment 42677 [details] Support service objects in GetNamedSecurityInfo [v3]
Please take a look at the revised patch (attached).
(In reply to comment #7)
... Probably it needs splitting too, to separate *Named* part from handle part.
I planned on submitting the FIXME w/ immediate return as a separate patch. Do you really think GetSecurityInfo part needs to be separate from the GetNamedSecurityInfo portion? That portion seems pretty minor.
Yes, I think it's better to have it separately, for example regression testing will be easier if it breaks something. Applications could use GetSecurityInfo directly with service handles so if it breaks something will see it.
Please send your current version to get some feedback in usual way with wine-devel.
http://bugs.winehq.org/show_bug.cgi?id=32327
--- Comment #10 from Erich Hoover ehoover@mines.edu 2012-12-03 13:44:53 CST --- This issue should be fixed by commit e3986462dfd807ff60265e79cd79017e1cee3800. Would you like to leave this open until proper support for service objects is accepted or do you want to consider this resolved?
http://bugs.winehq.org/show_bug.cgi?id=32327
--- Comment #11 from Nikolay Sivov bunglehead@gmail.com 2012-12-04 01:07:30 CST --- (In reply to comment #10)
This issue should be fixed by commit e3986462dfd807ff60265e79cd79017e1cee3800. Would you like to leave this open until proper support for service objects is accepted or do you want to consider this resolved?
Well, it doesn't fail fatally like before and installation seems to complete. However there's a new problem - custom action page fault after GetNamedSecurityInfoW() with types SE_SERVICE and SE_REGISTRY_KEY. I will open a new bug for that.
http://bugs.winehq.org/show_bug.cgi?id=32327
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |e3986462dfd807ff60265e79cd7 | |9017e1cee3800 Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #12 from Nikolay Sivov bunglehead@gmail.com 2012-12-04 01:07:50 CST --- Fixed with e3986462dfd807ff60265e79cd79017e1cee3800.
http://bugs.winehq.org/show_bug.cgi?id=32327
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |32360
http://bugs.winehq.org/show_bug.cgi?id=32327
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #13 from Alexandre Julliard julliard@winehq.org 2012-12-07 13:36:28 CST --- Closing bugs fixed in 1.5.19.