diff options
author | Kay Sievers <kay@vrfy.org> | 2013-10-22 03:27:38 +0200 |
---|---|---|
committer | Kay Sievers <kay@vrfy.org> | 2013-10-22 03:35:45 +0200 |
commit | 9bcbce4201afada1c0ad8ada0cbfbbf58a52a6a7 (patch) | |
tree | 6711cfcec9e2d25dae74a3d04e9093e2cdfdcec0 | |
parent | 40976028c6f24b9934e6c797ef6f5e123ac520d5 (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.
-rw-r--r-- | src/hostname/hostnamed.c | 6 | ||||
-rw-r--r-- | src/libsystemd-bus/bus-message.c | 2 | ||||
-rw-r--r-- | src/libsystemd-bus/bus-util.c | 4 | ||||
-rw-r--r-- | src/timedate/timedated.c | 12 |
4 files changed, 12 insertions, 12 deletions
diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c index db0762140b..0854bc412f 100644 --- a/src/hostname/hostnamed.c +++ b/src/hostname/hostnamed.c @@ -371,7 +371,7 @@ static int method_set_hostname(sd_bus *bus, sd_bus_message *m, void *userdata) { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; Context *c = userdata; const char *name; - bool interactive; + unsigned interactive; char *h; int r; @@ -421,7 +421,7 @@ static int method_set_static_hostname(sd_bus *bus, sd_bus_message *m, void *user _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; Context *c = userdata; const char *name; - bool interactive; + unsigned interactive; int r; r = sd_bus_message_read(m, "sb", &name, &interactive); @@ -472,7 +472,7 @@ static int method_set_static_hostname(sd_bus *bus, sd_bus_message *m, void *user static int set_machine_info(Context *c, sd_bus *bus, sd_bus_message *m, int prop, sd_bus_message_handler_t cb) { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - bool interactive; + unsigned interactive; const char *name; int r; 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 diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c index 2ead4b9999..809c80bad1 100644 --- a/src/timedate/timedated.c +++ b/src/timedate/timedated.c @@ -45,8 +45,8 @@ typedef struct Context { char *zone; bool local_rtc; - int can_ntp; - int use_ntp; + unsigned can_ntp; + unsigned use_ntp; Hashmap *polkit_registry; } Context; @@ -521,7 +521,7 @@ static int method_set_timezone(sd_bus *bus, sd_bus_message *m, void *userdata) { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; Context *c = userdata; const char *z; - bool interactive; + unsigned interactive; char *t; int r; @@ -585,7 +585,7 @@ static int method_set_timezone(sd_bus *bus, sd_bus_message *m, void *userdata) { static int method_set_local_rtc(sd_bus *bus, sd_bus_message *m, void *userdata) { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - bool lrtc, fix_system, interactive; + unsigned lrtc, fix_system, interactive; Context *c = userdata; struct timespec ts; int r; @@ -669,7 +669,7 @@ static int method_set_local_rtc(sd_bus *bus, sd_bus_message *m, void *userdata) static int method_set_time(sd_bus *bus, sd_bus_message *m, void *userdata) { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - bool relative, interactive; + unsigned relative, interactive; Context *c = userdata; int64_t utc; struct timespec ts; @@ -735,7 +735,7 @@ static int method_set_time(sd_bus *bus, sd_bus_message *m, void *userdata) { static int method_set_ntp(sd_bus *bus, sd_bus_message *m, void *userdata) { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - bool ntp, interactive; + unsigned ntp, interactive; Context *c = userdata; int r; |