From 319858127df42c1a95b9b3282705c90ecd6754a5 Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Oct 04 2018 12:40:52 +0000 Subject: clang: Dereference of null pointer --- diff --git a/src/tdbush.c b/src/tdbush.c index 3184e67..d1bbe4d 100644 --- a/src/tdbush.c +++ b/src/tdbush.c @@ -3655,37 +3655,39 @@ request_modify(DBusConnection *conn, DBusMessage *msg, break; } } - if (d[i] == NULL) { - new_request_path = talloc_asprintf(parent, "%s/%s", - CM_DBUS_REQUEST_PATH, - entry->cm_busname); - if ((n_propname > 0) && - (n_propname + 1 < sizeof(propname) / sizeof(propname[0]))) { - propname[n_propname] = NULL; - cm_tdbush_property_emit_changed(ctx, new_request_path, - CM_DBUS_REQUEST_INTERFACE, - propname); - } - cm_tdbusm_set_bp(rep, - cm_restart_entry(ctx, - entry->cm_nickname), - new_request_path); - dbus_connection_send(conn, rep, NULL); - dbus_message_unref(rep); - talloc_free(new_request_path); - return DBUS_HANDLER_RESULT_HANDLED; - } else { - dbus_message_unref(rep); - rep = dbus_message_new_error(msg, - CM_DBUS_ERROR_REQUEST_BAD_ARG, - _("Unrecognized parameter or wrong value type.")); - if (rep != NULL) { - cm_tdbusm_set_s(rep, d[i]->key); + if (d != NULL) { + if (d[i] == NULL) { + new_request_path = talloc_asprintf(parent, "%s/%s", + CM_DBUS_REQUEST_PATH, + entry->cm_busname); + if ((n_propname > 0) && + (n_propname + 1 < sizeof(propname) / sizeof(propname[0]))) { + propname[n_propname] = NULL; + cm_tdbush_property_emit_changed(ctx, new_request_path, + CM_DBUS_REQUEST_INTERFACE, + propname); + } + cm_tdbusm_set_bp(rep, + cm_restart_entry(ctx, + entry->cm_nickname), + new_request_path); dbus_connection_send(conn, rep, NULL); dbus_message_unref(rep); + talloc_free(new_request_path); return DBUS_HANDLER_RESULT_HANDLED; + } else { + dbus_message_unref(rep); + rep = dbus_message_new_error(msg, + CM_DBUS_ERROR_REQUEST_BAD_ARG, + _("Unrecognized parameter or wrong value type.")); + if (rep != NULL) { + cm_tdbusm_set_s(rep, d[i]->key); + dbus_connection_send(conn, rep, NULL); + dbus_message_unref(rep); + return DBUS_HANDLER_RESULT_HANDLED; + } + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } } else { return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;