]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev: introduce udev_property_name_is_valid() and friends
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 4 Jan 2025 12:07:41 +0000 (21:07 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 4 Jan 2025 12:54:40 +0000 (21:54 +0900)
src/udev/net/link-config.c
src/udev/udev-def.h

index 7d4e334503daf89f9b3162a7f98966b30cf58587..5a4b7261bbd9ecd51f928101e4c010a2680d1c23 100644 (file)
@@ -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;
index 9d9fc78247dc48706d15aebd1435088fbbdb5d8f..ed231764bc81903200e311c598e5333edecd33d1 100644 (file)
@@ -3,6 +3,8 @@
 
 #include <errno.h>
 
+#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)