mirror of
https://github.com/systemd/systemd.git
synced 2024-10-28 11:55:44 +03:00
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.
This commit is contained in:
parent
40976028c6
commit
9bcbce4201
@ -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;
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user