]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Rework code around 'append' attribute
authorDmitry Mishin <dim@virtuozzo.com>
Tue, 29 Dec 2015 16:55:26 +0000 (19:55 +0300)
committerJohn Ferlan <jferlan@redhat.com>
Tue, 5 Jan 2016 12:59:17 +0000 (07:59 -0500)
Commit id '70ffa02fc' added the data.file.append option to some
VIR_DOMAIN_CHR_TYPE_FILE cases in switch statements allowing the
code to "fall through" for the remainder of the cases. This causes
angst in code profiling tools, like Coverity since there is no break;
followed by more case conditions. Adjust the logic to be more specific
within each case.

Signed-off-by: Dmitry Mishin <dim@virtuozzo.com>
src/conf/domain_conf.c

index 7cafb5ff613e7dc463f84a7d5f733077e6dbc4b1..9d4784611b1eeef8f976c7b1bf4857377f72559b 100644 (file)
@@ -1723,10 +1723,11 @@ virDomainChrSourceDefCopy(virDomainChrSourceDefPtr dest,
 
     switch (src->type) {
     case VIR_DOMAIN_CHR_TYPE_FILE:
-        dest->data.file.append = src->data.file.append;
     case VIR_DOMAIN_CHR_TYPE_PTY:
     case VIR_DOMAIN_CHR_TYPE_DEV:
     case VIR_DOMAIN_CHR_TYPE_PIPE:
+        if (src->type == VIR_DOMAIN_CHR_TYPE_FILE)
+            dest->data.file.append = src->data.file.append;
         if (VIR_STRDUP(dest->data.file.path, src->data.file.path) < 0)
             return -1;
         break;
@@ -9386,12 +9387,12 @@ virDomainChrSourceDefParseXML(virDomainChrSourceDefPtr def,
 
                 switch ((virDomainChrType) def->type) {
                 case VIR_DOMAIN_CHR_TYPE_FILE:
-                    if (!append)
-                        append = virXMLPropString(cur, "append");
                 case VIR_DOMAIN_CHR_TYPE_PTY:
                 case VIR_DOMAIN_CHR_TYPE_DEV:
                 case VIR_DOMAIN_CHR_TYPE_PIPE:
                 case VIR_DOMAIN_CHR_TYPE_UNIX:
+                    if (!append && def->type == VIR_DOMAIN_CHR_TYPE_FILE)
+                        append = virXMLPropString(cur, "append");
                     /* PTY path is only parsed from live xml.  */
                     if (!path  &&
                         (def->type != VIR_DOMAIN_CHR_TYPE_PTY ||
@@ -9476,15 +9477,15 @@ virDomainChrSourceDefParseXML(virDomainChrSourceDefPtr def,
         break;
 
     case VIR_DOMAIN_CHR_TYPE_FILE:
-        if (append &&
+    case VIR_DOMAIN_CHR_TYPE_PTY:
+    case VIR_DOMAIN_CHR_TYPE_DEV:
+    case VIR_DOMAIN_CHR_TYPE_PIPE:
+        if (append && def->type == VIR_DOMAIN_CHR_TYPE_FILE &&
             (def->data.file.append = virTristateSwitchTypeFromString(append)) <= 0) {
             virReportError(VIR_ERR_INTERNAL_ERROR,
                            _("Invalid append attribute value '%s'"), append);
             goto error;
         }
-    case VIR_DOMAIN_CHR_TYPE_PTY:
-    case VIR_DOMAIN_CHR_TYPE_DEV:
-    case VIR_DOMAIN_CHR_TYPE_PIPE:
         if (!path &&
             def->type != VIR_DOMAIN_CHR_TYPE_PTY) {
             virReportError(VIR_ERR_INTERNAL_ERROR, "%s",