mirror of
https://github.com/systemd/systemd.git
synced 2025-03-31 14:50:15 +03:00
Merge pull request #6853 from sourcejedi/GetAll
sd-bus: fix response for GetAll on non-existent objects
This commit is contained in:
commit
d82611c918
@ -38,7 +38,7 @@ static int node_vtable_get_userdata(
|
||||
sd_bus_error *error) {
|
||||
|
||||
sd_bus_slot *s;
|
||||
void *u;
|
||||
void *u, *found_u;
|
||||
int r;
|
||||
|
||||
assert(bus);
|
||||
@ -50,7 +50,7 @@ static int node_vtable_get_userdata(
|
||||
if (c->find) {
|
||||
bus->current_slot = sd_bus_slot_ref(s);
|
||||
bus->current_userdata = u;
|
||||
r = c->find(bus, path, c->interface, u, &u, error);
|
||||
r = c->find(bus, path, c->interface, u, &found_u, error);
|
||||
bus->current_userdata = NULL;
|
||||
bus->current_slot = sd_bus_slot_unref(s);
|
||||
|
||||
@ -60,10 +60,11 @@ static int node_vtable_get_userdata(
|
||||
return -sd_bus_error_get_errno(error);
|
||||
if (r == 0)
|
||||
return r;
|
||||
}
|
||||
} else
|
||||
found_u = u;
|
||||
|
||||
if (userdata)
|
||||
*userdata = u;
|
||||
*userdata = found_u;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -829,6 +830,9 @@ static int property_get_all_callbacks_run(
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!*found_object)
|
||||
return 0;
|
||||
|
||||
if (!found_interface) {
|
||||
r = sd_bus_reply_method_errorf(
|
||||
m,
|
||||
|
Loading…
x
Reference in New Issue
Block a user