spoolss issues (Re: [PATCH] Change system handling in smbd)

Andreas Schneider asn at cryptomilk.org
Tue Jun 19 01:53:30 MDT 2012



On Mon 18.Jun.12 16:29, David Disseldorp wrote:
>Hi Andrew,
>
>On Fri, 15 Jun 2012 22:10:50 +1000
>Andrew Bartlett <abartlet at samba.org> wrote:
>
>> There is a problem.  While I can fix up the build issue, removing the
>> getpwuid() and passdb dependency is harder, as it breaks spoolss tests.
>>
>> Annoyingly, this doesn't seem happen in an individual test, so far I've
>> only reproduced it during a full make test:
>>
>> [485/671 in 13m52s] samba3.rpc.spoolss.driver(s3dc)
>
>In handling the DeletePrinterDriverEx request spoolss needs to issue IO
>to the print$ share, to do so it creates a fake connection struct.
>
>This change-set fails in share_access_check() when checking the print$
>share DACL (grant full access to global_sid_World) against the system
>token, as the system token does not include global_sid_World.
>
>Adding global_sid_World to the system security token allows the test to
>pass, however this should not be necessary.
>DeletePrinterDriverEx should be handled by the RPC server as the user
>connected to the spoolss pipe (unless force user/group is set), the
>system security token should be irrelevant through this code path IIUC.

Hey,

so delete_drivers() needs to be called with the session_info from the
connecting user, else it doesn't make sense. The following branch works
just fine for me.

https://git.samba.org/?p=asn/samba.git;a=shortlog;h=refs/heads/fix-system

Cheers,


     -- andreas



More information about the samba-technical mailing list