diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c index 7d4e334503..5a4b7261bb 100644 --- a/src/udev/net/link-config.c +++ b/src/udev/net/link-config.c @@ -15,7 +15,6 @@ #include "creds-util.h" #include "device-private.h" #include "device-util.h" -#include "env-util.h" #include "escape.h" #include "ethtool-util.h" #include "fd-util.h" @@ -1111,8 +1110,7 @@ int config_parse_udev_property( continue; } - /* The restriction for udev property is not clear. Let's apply the one for environment variable here. */ - if (!env_assignment_is_valid(resolved)) { + if (!udev_property_assignment_is_valid(resolved)) { log_syntax(unit, LOG_WARNING, filename, line, 0, "Invalid udev property, ignoring assignment: %s", word); continue; @@ -1181,8 +1179,7 @@ int config_parse_udev_property_name( continue; } - /* The restriction for udev property is not clear. Let's apply the one for environment variable here. */ - if (!env_name_is_valid(resolved)) { + if (!udev_property_name_is_valid(resolved)) { log_syntax(unit, LOG_WARNING, filename, line, 0, "Invalid udev property name, ignoring assignment: %s", resolved); continue; diff --git a/src/udev/udev-def.h b/src/udev/udev-def.h index 9d9fc78247..ed231764bc 100644 --- a/src/udev/udev-def.h +++ b/src/udev/udev-def.h @@ -3,6 +3,8 @@ #include +#include "env-util.h" + #define UDEV_NAME_SIZE 512 #define UDEV_PATH_SIZE 1024 #define UDEV_LINE_SIZE 16384 @@ -78,3 +80,9 @@ typedef enum UdevReloadFlags { UDEV_RELOAD_KILL_WORKERS = 1u << (_UDEV_BUILTIN_MAX + 0), UDEV_RELOAD_RULES = 1u << (_UDEV_BUILTIN_MAX + 1), } UdevReloadFlags; + +/* udev properties are conceptually close to environment variables. Let's validate names, values, and + * assignments in the same way. */ +#define udev_property_name_is_valid(x) env_name_is_valid(x) +#define udev_property_value_is_valid(x) env_value_is_valid(x) +#define udev_property_assignment_is_valid(x) env_assignment_is_valid(x)