From: Yu Watanabe Date: Mon, 29 Apr 2019 20:24:25 +0000 (+0200) Subject: udev: evaluate formatting in RUN= key earlier X-Git-Tag: v243-rc1~328^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1448820aadd138882232f169157de133a8f407b0;p=thirdparty%2Fsystemd.git udev: evaluate formatting in RUN= key earlier Closes #12291. --- diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c index 817648ec93f..32788c05e06 100644 --- a/src/udev/udev-event.c +++ b/src/udev/udev-event.c @@ -937,16 +937,13 @@ int udev_event_execute_rules(UdevEvent *event, } void udev_event_execute_run(UdevEvent *event, usec_t timeout_usec) { - const char *cmd; + const char *command; void *val; Iterator i; int r; - ORDERED_HASHMAP_FOREACH_KEY(val, cmd, event->run_list, i) { + ORDERED_HASHMAP_FOREACH_KEY(val, command, event->run_list, i) { UdevBuiltinCommand builtin_cmd = PTR_TO_UDEV_BUILTIN_CMD(val); - char command[UTIL_PATH_SIZE]; - - (void) udev_event_apply_format(event, cmd, command, sizeof(command), false); if (builtin_cmd != _UDEV_BUILTIN_INVALID) { log_device_debug(event->dev, "Running built-in command \"%s\"", command); diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index be4d8aeaa0d..149d62afb32 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -1832,7 +1832,9 @@ static int udev_rule_apply_token_to_event( if (r < 0) return log_oom(); - cmd = strdup(token->value); + (void) udev_event_apply_format(event, token->value, buf, sizeof(buf), false); + + cmd = strdup(buf); if (!cmd) return log_oom();