[libvirt PATCH 05/10] virDomainAudioDefParseXML: Don't ignore return value of virDomainAudio*Parse()

Tim Wiederhake twiederh at redhat.com
Wed May 19 14:10:07 UTC 2021


Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
---
 src/conf/domain_conf.c | 50 +++++++++++++++++++++++++-----------------
 1 file changed, 30 insertions(+), 20 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 2142e45fd5..1350c46039 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -13155,17 +13155,21 @@ virDomainAudioDefParseXML(virDomainXMLOption *xmlopt G_GNUC_UNUSED,
         break;
 
     case VIR_DOMAIN_AUDIO_TYPE_COREAUDIO:
-        if (inputNode)
-            virDomainAudioCoreAudioParse(&def->backend.coreaudio.input, inputNode);
-        if (outputNode)
-            virDomainAudioCoreAudioParse(&def->backend.coreaudio.output, outputNode);
+        if (inputNode &&
+            virDomainAudioCoreAudioParse(&def->backend.coreaudio.input, inputNode) < 0)
+            goto error;
+        if (outputNode &&
+            virDomainAudioCoreAudioParse(&def->backend.coreaudio.output, outputNode) < 0)
+            goto error;
         break;
 
     case VIR_DOMAIN_AUDIO_TYPE_JACK:
-        if (inputNode)
-            virDomainAudioJackParse(&def->backend.jack.input, inputNode);
-        if (outputNode)
-            virDomainAudioJackParse(&def->backend.jack.output, outputNode);
+        if (inputNode &&
+            virDomainAudioJackParse(&def->backend.jack.input, inputNode) < 0)
+            goto error;
+        if (outputNode &&
+            virDomainAudioJackParse(&def->backend.jack.output, outputNode) < 0)
+            goto error;
         break;
 
     case VIR_DOMAIN_AUDIO_TYPE_OSS: {
@@ -13193,20 +13197,24 @@ virDomainAudioDefParseXML(virDomainXMLOption *xmlopt G_GNUC_UNUSED,
             def->backend.oss.dspPolicySet = true;
         }
 
-        if (inputNode)
-            virDomainAudioOSSParse(&def->backend.oss.input, inputNode);
-        if (outputNode)
-            virDomainAudioOSSParse(&def->backend.oss.output, outputNode);
+        if (inputNode &&
+            virDomainAudioOSSParse(&def->backend.oss.input, inputNode) < 0)
+            goto error;
+        if (outputNode &&
+            virDomainAudioOSSParse(&def->backend.oss.output, outputNode) < 0)
+            goto error;
         break;
     }
 
     case VIR_DOMAIN_AUDIO_TYPE_PULSEAUDIO:
         def->backend.pulseaudio.serverName = virXMLPropString(node, "serverName");
 
-        if (inputNode)
-            virDomainAudioPulseAudioParse(&def->backend.pulseaudio.input, inputNode);
-        if (outputNode)
-            virDomainAudioPulseAudioParse(&def->backend.pulseaudio.output, outputNode);
+        if (inputNode &&
+            virDomainAudioPulseAudioParse(&def->backend.pulseaudio.input, inputNode) < 0)
+            goto error;
+        if (outputNode &&
+            virDomainAudioPulseAudioParse(&def->backend.pulseaudio.output, outputNode) < 0)
+            goto error;
         break;
 
     case VIR_DOMAIN_AUDIO_TYPE_SDL: {
@@ -13214,10 +13222,12 @@ virDomainAudioDefParseXML(virDomainXMLOption *xmlopt G_GNUC_UNUSED,
                            VIR_XML_PROP_NONZERO, &def->backend.sdl.driver) < 0)
             goto error;
 
-        if (inputNode)
-            virDomainAudioSDLParse(&def->backend.sdl.input, inputNode);
-        if (outputNode)
-            virDomainAudioSDLParse(&def->backend.sdl.output, outputNode);
+        if (inputNode &&
+            virDomainAudioSDLParse(&def->backend.sdl.input, inputNode) < 0)
+            goto error;
+        if (outputNode &&
+            virDomainAudioSDLParse(&def->backend.sdl.output, outputNode) < 0)
+            goto error;
         break;
     }
 
-- 
2.26.3




More information about the libvir-list mailing list