mirror of
https://github.com/systemd/systemd.git
synced 2025-01-25 10:04:04 +03:00
systemctl: explicitly cast the constants to uint64_t
Otherwise under certain conditions `va_arg()` might get garbage instead of the expected value, i.e.: $ sudo build-o0/systemctl disable asdfasfaf sd_bus_message_appendv: Got uint64_t: 0 Failed to disable unit: Unit file asdfasfaf.service does not exist. $ sudo build-o1/systemctl disable asdfasfaf sd_bus_message_appendv: Got uint64_t: 7954875719681572864 Failed to disable unit: Invalid argument (reproduced on an armv7hl machine) Resolves: #26568 Follow-up to: bf1bea43f15 Related issue: https://github.com/systemd/systemd/pull/14470#discussion_r362893735
This commit is contained in:
parent
0c70d5e623
commit
c63bfd0884
@ -211,7 +211,7 @@ int verb_enable(int argc, char *argv[], void *userdata) {
|
|||||||
|
|
||||||
if (send_runtime) {
|
if (send_runtime) {
|
||||||
if (streq(method, "DisableUnitFilesWithFlagsAndInstallInfo"))
|
if (streq(method, "DisableUnitFilesWithFlagsAndInstallInfo"))
|
||||||
r = sd_bus_message_append(m, "t", arg_runtime ? UNIT_FILE_RUNTIME : 0);
|
r = sd_bus_message_append(m, "t", arg_runtime ? (uint64_t) UNIT_FILE_RUNTIME : UINT64_C(0));
|
||||||
else
|
else
|
||||||
r = sd_bus_message_append(m, "b", arg_runtime);
|
r = sd_bus_message_append(m, "b", arg_runtime);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user