]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
basic/unit-name: make sure UnitNameFlags is signed
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 19 Dec 2019 16:13:48 +0000 (17:13 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 19 Dec 2019 19:57:27 +0000 (20:57 +0100)
Without that, a check like unit_name_to_instance(...) < 0 would not
have the expected effect.

src/basic/unit-name.h
src/test/test-unit-name.c

index 15ce4e24955a376aceadd09f36d92bb7ada1e729..1cd33396d8e6f3e3595e916f2a12fcdb751aaddc 100644 (file)
@@ -13,6 +13,7 @@ typedef enum UnitNameFlags {
         UNIT_NAME_TEMPLATE = 1 << 1, /* Allow foo@.service */
         UNIT_NAME_INSTANCE = 1 << 2, /* Allow foo@bar.service */
         UNIT_NAME_ANY = UNIT_NAME_PLAIN|UNIT_NAME_TEMPLATE|UNIT_NAME_INSTANCE,
+        _UNIT_NAME_INVALID = -1,
 } UnitNameFlags;
 
 bool unit_name_is_valid(const char *n, UnitNameFlags flags) _pure_;
index 5d18711a5ed673f651769b5b2c78b65909f751c6..6e294c72d627bff0ff17657522d829de2b4e0ab8 100644 (file)
@@ -78,6 +78,10 @@ static void test_unit_name_is_valid(void) {
         test_unit_name_is_valid_one("foo@%%i.service", UNIT_NAME_INSTANCE, false);
         test_unit_name_is_valid_one("foo@%%i%f.service", UNIT_NAME_INSTANCE, false);
         test_unit_name_is_valid_one("foo@%F.service", UNIT_NAME_INSTANCE, false);
+
+        test_unit_name_is_valid_one("foo.target.wants/plain.service", UNIT_NAME_ANY, false);
+        test_unit_name_is_valid_one("foo.target.conf/foo.conf", UNIT_NAME_ANY, false);
+        test_unit_name_is_valid_one("foo.target.requires/plain.socket", UNIT_NAME_ANY, false);
 }
 
 static void test_unit_name_replace_instance_one(const char *pattern, const char *repl, const char *expected, int ret) {