b->fake_pids.pid = p->local_creds.pid;
b->fake_pids_valid = true;
- b->fake_creds.uid = p->local_creds.uid;
+ b->fake_creds.uid = UID_INVALID;
b->fake_creds.euid = p->local_creds.uid;
- b->fake_creds.suid = p->local_creds.uid;
- b->fake_creds.fsuid = p->local_creds.uid;
- b->fake_creds.gid = p->local_creds.gid;
+ b->fake_creds.suid = UID_INVALID;
+ b->fake_creds.fsuid = UID_INVALID;
+ b->fake_creds.gid = GID_INVALID;
b->fake_creds.egid = p->local_creds.gid;
- b->fake_creds.sgid = p->local_creds.gid;
- b->fake_creds.fsgid = p->local_creds.gid;
+ b->fake_creds.sgid = GID_INVALID;
+ b->fake_creds.fsgid = GID_INVALID;
b->fake_creds_valid = true;
}
}
pollfd = (struct pollfd[3]) {
- { .fd = fd, .events = events_destination, },
+ { .fd = fd, .events = events_destination, },
{ .fd = p->local_in, .events = events_local & POLLIN, },
{ .fd = p->local_out, .events = events_local & POLLOUT, },
};
return -ECONNRESET;
r = synthesize_name_acquired(p->destination_bus, p->local_bus, m);
+ if (r == -ECONNRESET || r == -ENOTCONN)
+ return r;
if (r < 0)
return log_error_errno(r, "Failed to synthesize message: %m");
if (p->policy) {
r = process_policy(p->destination_bus, p->local_bus, m, p->policy, &p->local_creds, p->owned_names);
+ if (r == -ECONNRESET || r == -ENOTCONN)
+ return r;
if (r < 0)
return log_error_errno(r, "Failed to process policy: %m");
if (r > 0)
return -ECONNRESET;
r = process_hello(p, m);
+ if (r == -ECONNRESET || r == -ENOTCONN)
+ return r;
if (r < 0)
return log_error_errno(r, "Failed to process HELLO: %m");
if (r > 0)
return 1;
r = bus_proxy_process_driver(p->destination_bus, p->local_bus, m, p->policy, &p->local_creds, p->owned_names);
+ if (r == -ECONNRESET || r == -ENOTCONN)
+ return r;
if (r < 0)
return log_error_errno(r, "Failed to process driver calls: %m");
if (r > 0)
for (;;) {
if (p->policy) {
r = process_policy(p->local_bus, p->destination_bus, m, p->policy, &p->local_creds, p->owned_names);
+ if (r == -ECONNRESET || r == -ENOTCONN)
+ return r;
if (r < 0)
return log_error_errno(r, "Failed to process policy: %m");
- else if (r > 0)
+ if (r > 0)
return 1;
}
if (!busy) {
r = proxy_wait(p);
+ if (r == -ECONNRESET || r == -ENOTCONN)
+ return 0;
if (r < 0)
return r;
}