Service Object ACL's patch

Ann and Jason Edmeades us at
Sat Nov 6 15:32:15 CST 2004


I was doing some debugging of an application which tries to define a service
on the fly. It does a ...

CreateService (creates a service), 
QueryServiceObjectSecurity (queries the object security, adds someone -
probably the current user, at a guess), 
SetServiceObjectSecurity (to save the changed values)
QueryServiceStatus (to see if its running)
StartService (to start it).

Various parts of this sequence break, and as far as I can tell ACE/ACL type
support is mostly missing (especially from advapi32 and services!) and so I
have changed it to appear to succeed enough to move on.

1. Stub SetServceObjectSecurity to pretend to work (return true)
2. Change QueryServiceObjectSecurity so it initializes the ACL with a null
DACL, and return as though it worked (currently it leaves the
securitydescriptor uninitialized, and returns CALL_NOT_IMPLEMTENTED which is
interpreted as non-zero, ie true, and the app traps as the security
descriptor isn't initialized!
3. Changed QueryServiceStatus to tell if the service is running by the
presence of some named shared storage - copied from StartService when it
checks to see if its already running. (Unfortunately my service doesn't
start properly, but that's another story).

-------------- next part --------------
A non-text attachment was scrubbed...
Name: advapi32.patch.1
Type: application/octet-stream
Size: 3433 bytes
Desc: not available
Url :

More information about the wine-patches mailing list