]> xenbits.xensource.com Git - people/aperard/xen-unstable.git/commitdiff
x86/hvm: add defensive statements in unreachable program points
authorFederico Serafini <federico.serafini@bugseng.com>
Wed, 31 Jul 2024 11:09:58 +0000 (13:09 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 31 Jul 2024 11:09:58 +0000 (13:09 +0200)
As a defensive measure, make sure to signal an error to the caller
if an unreachable program point is reached.

Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/hvm/emulate.c
xen/arch/x86/hvm/hvm.c
xen/arch/x86/hvm/vmx/vmcs.c

index 135aa6fc224b19bb913a1eac5286fba5ffb94f79..b6ca5cb9d18ac88938c410600af346a5f01d7ef1 100644 (file)
@@ -2673,6 +2673,7 @@ static int _hvm_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt,
 
     default:
         ASSERT_UNREACHABLE();
+        return X86EMUL_UNHANDLEABLE;
     }
 
     if ( hvmemul_ctxt->ctxt.retire.singlestep )
index 1d32f473a43fde633bb5e723794787f4c96bbbe9..d7f195ba9a0c2e1d6e2a752d1821a5c0199fa73c 100644 (file)
@@ -4919,6 +4919,8 @@ static int do_altp2m_op(
 
     default:
         ASSERT_UNREACHABLE();
+        rc = -EOPNOTSUPP;
+        break;
     }
 
  out:
@@ -5020,6 +5022,8 @@ static int compat_altp2m_op(
 
     default:
         ASSERT_UNREACHABLE();
+        rc = -EOPNOTSUPP;
+        break;
     }
 
     return rc;
index 9b6dc51f36ab9f321ea0e554470ee6a56f5883d7..5787110a561d8c8969813552132a89e834fcdb5e 100644 (file)
@@ -1446,6 +1446,7 @@ struct vmx_msr_entry *vmx_find_msr(const struct vcpu *v, uint32_t msr,
 
     default:
         ASSERT_UNREACHABLE();
+        break;
     }
 
     if ( !start )
@@ -1598,6 +1599,7 @@ int vmx_del_msr(struct vcpu *v, uint32_t msr, enum vmx_msr_list_type type)
 
     default:
         ASSERT_UNREACHABLE();
+        return -EINVAL;
     }
 
     if ( !start )