"Daniel P. Berrange" <berrange@xxxxxxxxxx> wrote: > The root filesystem for an openvz guest is defined from a template name. > We support this when creating a new guest, but never include this info > when dumping the XML. Thsi patch addresses this problem by reading the > OSTEMPLATE config parameter > > diff -r e0c166ce24bd src/openvz_conf.c > --- a/src/openvz_conf.c Tue Oct 14 15:46:24 2008 +0100 > +++ b/src/openvz_conf.c Tue Oct 14 15:49:41 2008 +0100 > @@ -308,6 +308,47 @@ error: > } > > > +static int > +openvzReadFSConf(virConnectPtr conn, > + virDomainDefPtr def, > + int veid) { > + int ret; > + virDomainFSDefPtr fs; This needs to be initialized here or in the 'if' block. Otherwise, it will be freed uninitialized upon read failure: virDomainFSDefPtr fs = NULL; > + char temp[4096]; > + > + ret = openvzReadConfigParam(veid, "OSTEMPLATE", temp, sizeof(temp)); > + if (ret < 0) { > + openvzError(conn, VIR_ERR_INTERNAL_ERROR, > + _("Cound not read 'OSTEMPLATE' from config for container %d"), > + veid); > + goto error; > + } else if (ret > 0) { > + if (VIR_ALLOC(fs) < 0) > + goto no_memory; > + > + fs->type = VIR_DOMAIN_FS_TYPE_TEMPLATE; > + fs->src = strdup(temp); > + fs->dst = strdup("/"); > + > + if (fs->src == NULL || fs->dst == NULL) > + goto no_memory; > + > + if (VIR_REALLOC_N(def->fss, def->nfss + 1) < 0) > + goto no_memory; > + def->fss[def->nfss++] = fs; > + fs = NULL; > + > + } > + > + return 0; > +no_memory: > + openvzError(conn, VIR_ERR_NO_MEMORY, NULL); > +error: > + virDomainFSDefFree(fs); > + return -1; > +} > + > + > /* Free all memory associated with a openvz_driver structure */ > void > openvzFreeDriver(struct openvz_driver *driver) > @@ -393,6 +434,7 @@ int openvzLoadDomains(struct openvz_driv > /* XXX load rest of VM config data .... */ > > openvzReadNetworkConf(NULL, dom->def, veid); > + openvzReadFSConf(NULL, dom->def, veid); > > if (VIR_REALLOC_N(driver->domains.objs, > driver->domains.count + 1) < 0) -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list