[PATCH phosphor-host-ipmid v2] Handle errors finding openbmc_path #75
OpenBMC Patches
openbmc-patches at stwcx.xyz
Fri May 13 22:00:45 AEST 2016
From: Nan Li <bjlinan at cn.ibm.com>
1.Check return value properly.
Signed-off-by: Nan Li <bjlinan at cn.ibm.com>
---
ipmid.C | 10 ++++++++++
sensorhandler.C | 9 ++++++++-
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/ipmid.C b/ipmid.C
index 728ba0b..413c2b7 100644
--- a/ipmid.C
+++ b/ipmid.C
@@ -565,6 +565,11 @@ int set_sensor_dbus_state_s(uint8_t number, const char *method, const char *valu
r = find_openbmc_path("SENSOR", number, &a);
+ if (r < 0) {
+ fprintf(stderr, "Failed to find Sensor 0x%02x\n", number);
+ goto final;
+ }
+
r = sd_bus_message_new_method_call(bus,&m,a.bus,a.path,a.interface,method);
if (r < 0) {
fprintf(stderr, "Failed to create a method call: %s", strerror(-r));
@@ -602,6 +607,11 @@ int set_sensor_dbus_state_y(uint8_t number, const char *method, const uint8_t va
r = find_openbmc_path("SENSOR", number, &a);
+ if (r < 0) {
+ fprintf(stderr, "Failed to find Sensor 0x%02x\n", number);
+ goto final;
+ }
+
r = sd_bus_message_new_method_call(bus,&m,a.bus,a.path,a.interface,method);
if (r < 0) {
fprintf(stderr, "Failed to create a method call: %s", strerror(-r));
diff --git a/sensorhandler.C b/sensorhandler.C
index bb14e7a..9c7c2cd 100644
--- a/sensorhandler.C
+++ b/sensorhandler.C
@@ -180,6 +180,13 @@ ipmi_ret_t ipmi_sen_get_sensor_reading(ipmi_netfn_t netfn, ipmi_cmd_t cmd,
r = find_openbmc_path("SENSOR", reqptr->sennum, &a);
+ if (r < 0) {
+ fprintf(stderr, "Failed to find Sensor 0x%02x\n", reqptr->sennum);
+ *data_len=0;
+ rc = IPMI_CC_SENSOR_INVALID;
+ goto final;
+ }
+
type = find_sensor(reqptr->sennum);
fprintf(stderr, "Bus: %s, Path: %s, Interface: %s\n", a.bus, a.path, a.interface);
@@ -220,7 +227,7 @@ ipmi_ret_t ipmi_sen_get_sensor_reading(ipmi_netfn_t netfn, ipmi_cmd_t cmd,
break;
}
-
+final:
reply = sd_bus_message_unref(reply);
return rc;
--
2.8.1
More information about the openbmc
mailing list