summaryrefslogtreecommitdiff
path: root/src/libsystemd-bus
diff options
context:
space:
mode:
authorKay Sievers <kay@vrfy.org>2013-10-22 03:27:38 +0200
committerKay Sievers <kay@vrfy.org>2013-10-22 03:35:45 +0200
commit9bcbce4201afada1c0ad8ada0cbfbbf58a52a6a7 (patch)
tree6711cfcec9e2d25dae74a3d04e9093e2cdfdcec0 /src/libsystemd-bus
parent40976028c6f24b9934e6c797ef6f5e123ac520d5 (diff)
bus: avoid 'bool' storage when retrieving 'b' from the message
Just use an unsigned int as a bool type to avoid issues in the public message reading API; sizeof(bool) == 1, but the code copies 4 bytes at the pointers destination.
Diffstat (limited to 'src/libsystemd-bus')
-rw-r--r--src/libsystemd-bus/bus-message.c2
-rw-r--r--src/libsystemd-bus/bus-util.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/src/libsystemd-bus/bus-message.c b/src/libsystemd-bus/bus-message.c
index 511bdf503e..cfc45a3f71 100644
--- a/src/libsystemd-bus/bus-message.c
+++ b/src/libsystemd-bus/bus-message.c
@@ -2741,7 +2741,7 @@ int sd_bus_message_read_basic(sd_bus_message *m, char type, void *p) {
break;
case SD_BUS_TYPE_BOOLEAN:
- *(int*) p = !!*(uint32_t*) q;
+ *(unsigned*) p = !!*(uint32_t*) q;
break;
case SD_BUS_TYPE_INT16:
diff --git a/src/libsystemd-bus/bus-util.c b/src/libsystemd-bus/bus-util.c
index c72610466d..42374fe16c 100644
--- a/src/libsystemd-bus/bus-util.c
+++ b/src/libsystemd-bus/bus-util.c
@@ -148,7 +148,7 @@ int bus_verify_polkit(
#ifdef ENABLE_POLKIT
else {
_cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
- bool authorized = false, challenge = false;
+ unsigned authorized = false, challenge = false;
r = sd_bus_call_method(
bus,
@@ -267,7 +267,7 @@ int bus_verify_polkit_async(
#ifdef ENABLE_POLKIT
q = hashmap_remove(*registry, m);
if (q) {
- bool authorized, challenge;
+ unsigned authorized, challenge;
/* This is the second invocation of this function, and
* there's already a response from polkit, let's