
On Fri, Oct 21, 2016 at 09:01:44AM -0400, John Ferlan wrote:
Commit id '5f2a132786' should have placed the data in the host source def structure since that's also used by smartcard, redirdev, and rng in order to provide a backend tcp channel. The data in the private structure will be necessary in order to provide the secret properly
Signed-off-by: John Ferlan <jferlan@redhat.com> --- src/conf/domain_conf.c | 17 +++++++---------- src/conf/domain_conf.h | 2 +- 2 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 2b89ea2..a684c48 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2024,6 +2024,7 @@ void virDomainChrSourceDefFree(virDomainChrSourceDefPtr def) return;
virDomainChrSourceDefClear(def); + virObjectUnref(def->privateData);
VIR_FREE(def); } @@ -2125,8 +2126,6 @@ void virDomainChrDefFree(virDomainChrDefPtr def) VIR_FREE(def->seclabels); }
- virObjectUnref(def->privateData); - VIR_FREE(def); }
@@ -10318,13 +10317,17 @@ virDomainChrSourceDefParseXML(virDomainChrSourceDefPtr def,
static virDomainChrSourceDefPtr -virDomainChrSourceDefNew(void) +virDomainChrSourceDefNew(virDomainXMLOptionPtr xmlopt) { virDomainChrSourceDefPtr def = NULL;
if (VIR_ALLOC(def) < 0) return NULL;
+ if (xmlopt && xmlopt->privateData.chardevNew && + !(def->privateData = xmlopt->privateData.chardevNew()))
Perhaps rename it to chardevSourceNew or charSourceNew. ACK Pavel
+ VIR_FREE(def); + return def; }
@@ -10342,15 +10345,9 @@ virDomainChrDefNew(virDomainXMLOptionPtr xmlopt)
def->target.port = -1;
- if (!(def->source = virDomainChrSourceDefNew())) + if (!(def->source = virDomainChrSourceDefNew(xmlopt))) VIR_FREE(def);
- if (xmlopt && xmlopt->privateData.chardevNew && - !(def->privateData = xmlopt->privateData.chardevNew())) { - virDomainChrSourceDefFree(def->source); - VIR_FREE(def); - } - return def; }
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 5247d34..97ffcf4 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1078,6 +1078,7 @@ typedef enum { /* The host side information for a character device. */ struct _virDomainChrSourceDef { int type; /* virDomainChrType */ + virObjectPtr privateData; union { /* no <source> for null, vc, stdio */ struct { @@ -1117,7 +1118,6 @@ struct _virDomainChrSourceDef { /* A complete character device, both host and domain views. */ struct _virDomainChrDef { int deviceType; /* enum virDomainChrDeviceType */ - virObjectPtr privateData;
bool targetTypeAttr; int targetType; /* enum virDomainChrConsoleTargetType || -- 2.7.4
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list