]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
portabled: refuse queries for empty image name
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 20 May 2022 12:53:22 +0000 (14:53 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 20 May 2022 12:59:50 +0000 (14:59 +0200)
I took inspiration from pid1:
bus_unit_find()
  → find_unit()
    → manager_load_unit_from_dbus_path()
      → unit_name_from_dbus_path()
        → !startswith(path, "/org/freedesktop/systemd1/unit/")
          → return -EINVAL
          ←
        ←
      ←
    ← if (r < 0) return 0
  ← 0


i.e. we return 0 when queried for "/org/freedesktop/systemd1/unit".

Fixes #23445.

src/portable/portabled-image-bus.c

index 3fe0eca4c5a60cca565a66937cace14622968f73..7d69d776ebd4952c405fe0c6705cb53e87288fb5 100644 (file)
@@ -1120,6 +1120,9 @@ int bus_image_object_find(
                 return 0;
         if (r == 0)
                 goto not_found;
+        if (isempty(e))
+                /* The path is "/org/freedesktop/portable1/image" itself */
+                goto not_found;
 
         r = bus_image_acquire(m, sd_bus_get_current_message(bus), e, NULL, BUS_IMAGE_REFUSE_BY_PATH, NULL, &image, error);
         if (r == -ENOENT)