From cd4c756fd5eece6b1d7723a407ead0ed1bf8a298 Mon Sep 17 00:00:00 2001 From: Tim Wiederhake Date: Tue, 18 May 2021 17:04:50 +0200 Subject: [PATCH] virDomainAudioOSSParse: Use virXMLProp* This strictens the parser to disallow negative values (interpreted as `UINT_MAX + value + 1`) for attribute `bufferCount`. Allowing negative numbers to be interpreted this way makes no sense for this attribute. Signed-off-by: Tim Wiederhake Reviewed-by: Laine Stump --- src/conf/domain_conf.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index a46e64c64a..b3ed3a9c5a 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -13074,26 +13074,15 @@ static int virDomainAudioOSSParse(virDomainAudioIOOSS *def, xmlNodePtr node) { - g_autofree char *tryPoll = virXMLPropString(node, "tryPoll"); - g_autofree char *bufferCount = virXMLPropString(node, "bufferCount"); - def->dev = virXMLPropString(node, "dev"); - if (tryPoll && - ((def->tryPoll = - virTristateBoolTypeFromString(tryPoll)) <= 0)) { - virReportError(VIR_ERR_XML_ERROR, - _("unknown 'tryPoll' value '%s'"), tryPoll); + if (virXMLPropTristateBool(node, "tryPoll", VIR_XML_PROP_NONE, + &def->tryPoll) < 0) return -1; - } - if (bufferCount && - virStrToLong_ui(bufferCount, NULL, 10, - &def->bufferCount) < 0) { - virReportError(VIR_ERR_XML_ERROR, - _("cannot parse 'bufferCount' value '%s'"), bufferCount); + if (virXMLPropUInt(node, "bufferCount", 10, VIR_XML_PROP_NONE, + &def->bufferCount) < 0) return -1; - } return 0; }