[libvirt] [PATCH 2/2] Make sure the rundir is accessible by the user

Guido Günther agx at sigxcpu.org
Wed Mar 9 14:43:56 UTC 2011


On Wed, Mar 09, 2011 at 02:16:47PM +0000, Daniel P. Berrange wrote:
> On Wed, Mar 09, 2011 at 02:19:18PM +0100, Guido Günther wrote:
> > On Wed, Mar 09, 2011 at 09:20:50AM +0100, Guido Günther wrote:
> > > otherwise the user might not have enough permissions to access the
> > > socket if roots umask is 077.
> > This version of the patch fixes the dependency on a sane umask without
> > introducing a new function.
> > O.k. to apply?
> > Cheers,
> >  -- Guido
> 
> > >From 7595fc991a7fe398466d1e3fac0b52ad9e389602 Mon Sep 17 00:00:00 2001
> > From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx at sigxcpu.org>
> > Date: Wed, 9 Mar 2011 14:15:48 +0100
> > Subject: [PATCH] Make sure the rundir is accessible by the user
> > 
> > otherwise the user might not have enough permissions to access the
> > socket if root's umask is 077.
> > 
> > http://bugs.debian.org/614210
> > ---
> >  daemon/libvirtd.c |    4 ++++
> >  1 files changed, 4 insertions(+), 0 deletions(-)
> > 
> > diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
> > index 452566c..9a5a53e 100644
> > --- a/daemon/libvirtd.c
> > +++ b/daemon/libvirtd.c
> > @@ -3277,16 +3277,20 @@ int main(int argc, char **argv) {
> >      /* Ensure the rundir exists (on tmpfs on some systems) */
> >      if (geteuid() == 0) {
> >          const char *rundir = LOCALSTATEDIR "/run/libvirt";
> > +        mode_t old_umask;
> >  
> > +        old_umask = umask(022);
> >          if (mkdir (rundir, 0755)) {
> >              if (errno != EEXIST) {
> >                  char ebuf[1024];
> >                  VIR_ERROR(_("unable to create rundir %s: %s"), rundir,
> >                            virStrerror(errno, ebuf, sizeof(ebuf)));
> >                  ret = VIR_DAEMON_ERR_RUNDIR;
> > +                umask(old_umask);
> >                  goto error;
> >              }
> >          }
> > +        umask(old_umask);
> >      }
> >  
> >      /* Beyond this point, nothing should rely on using
> 
> ACK

Pushed. Thanks,
 -- Guido




More information about the libvir-list mailing list