chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
ec16945
)
bus: fix assert() on HELLO error-path
author
David Herrmann
<dh.herrmann@gmail.com>
Fri, 12 Dec 2014 13:02:05 +0000
(14:02 +0100)
committer
David Herrmann
<dh.herrmann@gmail.com>
Fri, 12 Dec 2014 13:02:05 +0000
(14:02 +0100)
Make sure we don't call into any bus_kernel_*() functions before
b->is_kernel is set to true. Hard-code the CMD_FREE just like the other
helpers do.
src/libsystemd/sd-bus/bus-kernel.c
patch
|
blob
|
history
diff --git
a/src/libsystemd/sd-bus/bus-kernel.c
b/src/libsystemd/sd-bus/bus-kernel.c
index
1122927
..
d910d8e
100644
(file)
--- a/
src/libsystemd/sd-bus/bus-kernel.c
+++ b/
src/libsystemd/sd-bus/bus-kernel.c
@@
-815,6
+815,10
@@
fail:
}
int bus_kernel_take_fd(sd_bus *b) {
+ struct kdbus_cmd_free cmd_free = {
+ .size = sizeof(cmd_free),
+ .flags = 0,
+ };
struct kdbus_bloom_parameter *bloom = NULL;
struct kdbus_cmd_hello *hello;
struct kdbus_item_list *items;
@@
-982,7
+986,8
@@
int bus_kernel_take_fd(sd_bus *b) {
return bus_start_running(b);
fail:
- (void) bus_kernel_cmd_free(b, hello->offset);
+ cmd_free.offset = hello->offset;
+ (void) ioctl(b->input_fd, KDBUS_CMD_FREE, &cmd_free);
return r;
}