e = stpcpy(buf, "arg");
if (i < 10)
- *(e++) = '0' + i;
+ *(e++) = '0' + (char) i;
else {
- *(e++) = '0' + (i / 10);
- *(e++) = '0' + (i % 10);
+ *(e++) = '0' + (char) (i / 10);
+ *(e++) = '0' + (char) (i % 10);
}
*e = 0;
m->kdbus->cookie = m->header->serial;
if (m->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED)
- m->kdbus->cookie_reply = m->reply_serial;
+ m->kdbus->cookie_reply = m->reply_cookie;
else
m->kdbus->timeout_ns = m->timeout * NSEC_PER_USEC;
r = bus_message_new_synthetic_error(
bus,
- BUS_MESSAGE_SERIAL(m),
+ BUS_MESSAGE_COOKIE(m),
&error,
&reply);
case KDBUS_ITEM_CREDS:
/* UID/GID/PID are always valid */
- m->creds.uid = d->creds.uid;
- m->creds.gid = d->creds.gid;
- m->creds.pid = d->creds.pid;
+ m->creds.uid = (uid_t) d->creds.uid;
+ m->creds.gid = (gid_t) d->creds.gid;
+ m->creds.pid = (pid_t) d->creds.pid;
m->creds.mask |= (SD_BUS_CREDS_UID|SD_BUS_CREDS_GID|SD_BUS_CREDS_PID) & bus->creds_mask;
/* The PID starttime/TID might be missing
}
if (d->creds.tid > 0) {
- m->creds.tid = d->creds.tid;
+ m->creds.tid = (pid_t) d->creds.tid;
m->creds.mask |= SD_BUS_CREDS_TID & bus->creds_mask;
}
break;
break;
case KDBUS_ITEM_AUDIT:
- m->creds.audit_session_id = d->audit.sessionid;
- m->creds.audit_login_uid = d->audit.loginuid;
+ m->creds.audit_session_id = (uint32_t) d->audit.sessionid;
+ m->creds.audit_login_uid = (uid_t) d->audit.loginuid;
m->creds.mask |= (SD_BUS_CREDS_AUDIT_SESSION_ID|SD_BUS_CREDS_AUDIT_LOGIN_UID) & bus->creds_mask;
break;
return 0;
}
-int bus_kernel_create_bus(const char *name, char **s) {
+int bus_kernel_create_bus(const char *name, bool world, char **s) {
struct kdbus_cmd_make *make;
struct kdbus_item *n;
int fd;
n->type = KDBUS_ITEM_MAKE_NAME;
make->size += ALIGN8(n->size);
- make->flags = KDBUS_MAKE_POLICY_OPEN;
+ make->flags = KDBUS_MAKE_POLICY_OPEN | (world ? KDBUS_MAKE_ACCESS_WORLD : 0);
if (ioctl(fd, KDBUS_CMD_BUS_MAKE, make) < 0) {
close_nointr_nofail(fd);