summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/providers/data_provider/dp_target_hostid.c2
-rw-r--r--src/providers/data_provider/dp_target_subdomains.c2
-rw-r--r--src/sbus/sssd_dbus.h6
3 files changed, 8 insertions, 2 deletions
diff --git a/src/providers/data_provider/dp_target_hostid.c b/src/providers/data_provider/dp_target_hostid.c
index a47601f0b..93f9fdac5 100644
--- a/src/providers/data_provider/dp_target_hostid.c
+++ b/src/providers/data_provider/dp_target_hostid.c
@@ -46,7 +46,7 @@ errno_t dp_host_handler(struct sbus_request *sbus_req,
}
data->name = name;
- data->alias = alias[0] == '\0' ? NULL : alias;
+ data->alias = SBUS_SET_STRING(alias);
key = talloc_asprintf(data, "%s:%s", name,
(data->alias == NULL ? "(null)" : data->alias));
diff --git a/src/providers/data_provider/dp_target_subdomains.c b/src/providers/data_provider/dp_target_subdomains.c
index 85e37f063..e29a9b942 100644
--- a/src/providers/data_provider/dp_target_subdomains.c
+++ b/src/providers/data_provider/dp_target_subdomains.c
@@ -40,7 +40,7 @@ errno_t dp_subdomains_handler(struct sbus_request *sbus_req,
}
data->domain_hint = domain_hint;
- key = domain_hint[0] == '\0' ? "<ALL>" : domain_hint;
+ key = SBUS_IS_STRING_EMPTY(domain_hint) ? "<ALL>" : domain_hint;
dp_req_with_reply(dp_cli, NULL, "Subdomains", key, sbus_req,
DPT_SUBDOMAINS, DPM_DOMAINS_HANDLER, 0, data,
diff --git a/src/sbus/sssd_dbus.h b/src/sbus/sssd_dbus.h
index 170b16bf9..fe1c4a7e1 100644
--- a/src/sbus/sssd_dbus.h
+++ b/src/sbus/sssd_dbus.h
@@ -61,6 +61,12 @@ struct sbus_request;
*/
#define SBUS_SUBTREE_SUFFIX "/*"
+/**
+ * It is not possible to send NULL over D-Bus. We can only test if it
+ * is empty or not.
+ */
+#define SBUS_IS_STRING_EMPTY(str) ((str) == NULL || (str)[0] == '\0')
+#define SBUS_SET_STRING(str) (SBUS_IS_STRING_EMPTY(str) ? NULL : (str))
typedef int (*sbus_msg_handler_fn)(struct sbus_request *dbus_req,