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:
813a4f9
)
bus: validate the hello response properly
author
Lennart Poettering
<lennart@poettering.net>
Fri, 22 Mar 2013 01:20:21 +0000
(
02:20
+0100)
committer
Lennart Poettering
<lennart@poettering.net>
Fri, 22 Mar 2013 01:20:21 +0000
(
02:20
+0100)
src/libsystemd-bus/sd-bus.c
patch
|
blob
|
history
diff --git
a/src/libsystemd-bus/sd-bus.c
b/src/libsystemd-bus/sd-bus.c
index 6a6d43fac0a03dd01eac4f38faf6527345601804..4bfbd4c651cdf694a997ede987a7f4da57038c7e 100644
(file)
--- a/
src/libsystemd-bus/sd-bus.c
+++ b/
src/libsystemd-bus/sd-bus.c
@@
-104,16
+104,19
@@
static int hello_callback(sd_bus *bus, int error, sd_bus_message *reply, void *u
assert(reply);
assert(reply);
- bus->state = BUS_RUNNING;
-
r = sd_bus_message_read(reply, "s", &s);
if (r < 0)
return r;
r = sd_bus_message_read(reply, "s", &s);
if (r < 0)
return r;
+ if (!service_name_is_valid(s) || s[0] != ':')
+ return -EBADMSG;
+
bus->unique_name = strdup(s);
if (!bus->unique_name)
return -ENOMEM;
bus->unique_name = strdup(s);
if (!bus->unique_name)
return -ENOMEM;
+ bus->state = BUS_RUNNING;
+
return 1;
}
return 1;
}