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
(from parent 1:
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 112292735b4018a6ad9f92b9d35c3a9ab3e21894..d910d8e492e59140a69b0cc020b5355c7d1bd97a 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;
}