diff mbox series

qmp: Add error proofing for query-acpi-ospm-status

Message ID 20230208074501.1225-1-jiangkunkun@huawei.com (mailing list archive)
State New, archived
Headers show
Series qmp: Add error proofing for query-acpi-ospm-status | expand

Commit Message

Kunkun Jiang Feb. 8, 2023, 7:45 a.m. UTC
The ACPI device may not implement the ospm_status callback. Executing
qmp "query-acpi-ospm-status" will cause segmentation fault. Add error
proofing add log to avoid such serious consequences.

Signed-off-by: Kunkun Jiang <jiangkunkun@huawei.com>
---
 monitor/qmp-cmds.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c
index bf22a8c5a6..7652613635 100644
--- a/monitor/qmp-cmds.c
+++ b/monitor/qmp-cmds.c
@@ -229,7 +229,12 @@  ACPIOSTInfoList *qmp_query_acpi_ospm_status(Error **errp)
         AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_GET_CLASS(obj);
         AcpiDeviceIf *adev = ACPI_DEVICE_IF(obj);
 
-        adevc->ospm_status(adev, &prev);
+        if (adevc->ospm_status) {
+            adevc->ospm_status(adev, &prev);
+        } else {
+            error_setg(errp, "command is not supported, "
+                             "ACPI device missing ospm_status callback");
+        }
     } else {
         error_setg(errp, "command is not supported, missing ACPI device");
     }