} else if (sd_bus_message_is_method_call(m, "org.freedesktop.DBus", "ListQueuedOwners")) {
struct kdbus_cmd_name_list cmd = {};
struct kdbus_name_list *name_list;
+ struct kdbus_cmd_free cmd_free;
struct kdbus_cmd_name *name;
_cleanup_strv_free_ char **owners = NULL;
char *arg0;
}
}
- r = ioctl(a->input_fd, KDBUS_CMD_FREE, &cmd.offset);
+ cmd_free.flags = 0;
+ cmd_free.offset = cmd.offset;
+
+ r = ioctl(a->input_fd, KDBUS_CMD_FREE, &cmd_free);
if (r < 0)
return synthetic_reply_method_errno(m, r, NULL);
sd_is_socket(out_fd, AF_UNIX, 0, 0) > 0;
if (is_unix) {
- getpeercred(in_fd, &ucred);
- getpeersec(in_fd, &peersec);
+ r = getpeercred(in_fd, &ucred);
+ if (r < 0) {
+ log_error("Failed to get peer creds: %s", strerror(-r));
+ goto finish;
+ }
+
+ (void) getpeersec(in_fd, &peersec);
}
if (arg_drop_privileges) {