[libvirt] [PATCH 01/11] Convert Xen domain lookup driver methods to use virDomainDefPtr
Daniel P. Berrange
berrange at redhat.com
Thu May 9 13:06:58 UTC 2013
On Thu, May 09, 2013 at 03:01:42PM +0200, Michal Privoznik wrote:
> On 09.05.2013 14:59, Daniel P. Berrange wrote:
> > From: "Daniel P. Berrange" <berrange at redhat.com>
> >
> > Introduce use of a virDomainDefPtr in the domain lookup
> > APIs to simplify introduction of ACL security checks.
> > The virDomainPtr cannot be safely used, since the app
> > may have supplied mis-matching name/uuid/id fields. eg
> > the name points to domain X, while the uuid points to
> > domain Y. Resolving the virDomainPtr to a virDomainDefPtr
> > ensures a consistent name/uuid/id set.
> >
> > Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> > ---
> > src/conf/domain_conf.c | 24 ++++++++
> > src/conf/domain_conf.h | 4 ++
> > src/libvirt_private.syms | 1 +
> > src/xen/xen_driver.c | 147 +++++++++++++++++++++++++++++++----------------
> > src/xen/xen_hypervisor.c | 17 +++---
> > src/xen/xen_hypervisor.h | 8 +--
> > src/xen/xen_inotify.c | 14 ++---
> > src/xen/xend_internal.c | 34 +++++------
> > src/xen/xend_internal.h | 4 +-
> > src/xen/xm_internal.c | 30 ++++------
> > src/xen/xm_internal.h | 5 +-
> > 11 files changed, 173 insertions(+), 115 deletions(-)
> >
> > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> > index d55ce6b..61995cd 100644
> > --- a/src/conf/domain_conf.c
> > +++ b/src/conf/domain_conf.c
> > @@ -2048,6 +2048,30 @@ error:
> > return NULL;
> > }
> >
> > +
> > +virDomainDefPtr virDomainDefNew(const char *name,
> > + const unsigned char *uuid,
> > + int id)
> > +{
> > + virDomainDefPtr def;
> > +
> > + if (VIR_ALLOC(def) < 0) {
> > + virReportOOMError();
> > + return NULL;
> > + }
> > +
> > + if (!(def->name = strdup(name))) {
> > + VIR_FREE(def);
> > + return NULL;
> > + }
>
> Can you switch to VIR_STRDUP instead?
Ok, consider this to be squashed in once acked
@@ -2060,7 +2060,7 @@ virDomainDefPtr virDomainDefNew(const char *name,
return NULL;
}
- if (!(def->name = strdup(name))) {
+ if (VIR_STRDUP(def->name, name) < 0) {
VIR_FREE(def);
return NULL;
}
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list