On Tue, Sep 18, 2007 at 04:17:32AM -0400, Daniel Veillard wrote:
On Tue, Sep 18, 2007 at 05:38:09AM +0100, Daniel P. Berrange wrote:
> NB, the virConf apis don't seem to recognise Octal numbers when parsing
> the config file, so I've used strings for the permissions. Not a big deal
> really unless someone desperately wants to fix the config file parser...
[...]
> +static gid_t unix_sock_gid = 0; /* Only root by default */
> +static int unix_sock_rw_perms = 0700; /* Allow user only */
> +static int unix_sock_ro_perms = 0777; /* Allow world */
[...]
> - if (readonly)
> - oldmask = umask(~(S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH |
S_IWOTH));
> - else
> - oldmask = umask(~(S_IRUSR | S_IWUSR));
> + oldgrp = getgid();
> + oldmask = umask(readonly ? ~unix_sock_ro_perms : ~unix_sock_rw_perms);
> + if (getuid() == 0)
> + setgid(unix_sock_gid);
> +
Looks fine but we went from the full macros definition to the pre
digested octal value. But I'm not old enough to really care :-)
The umask was wanting a mask, while the configuration file (for end-user
sanity) wants a mode instead. So I figured it was best to simply stick
with mode throughout the code, and simply invert it when passing into
umask at time of use.
I added this to CVS & along with the updated docs on the 3 new configuration
parameters for the daemon.
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules:
http://search.cpan.org/~danberr/ -=|
|=- Projects:
http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|