From a03ce6d1a2d8239c2173786ee502405a306882e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 20 May 2022 14:53:22 +0200 Subject: [PATCH] portabled: refuse queries for empty image name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. (cherry picked from commit 4313e2b69fe1bcddd7b551e171f1fa3554155968) --- src/portable/portabled-image-bus.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/portable/portabled-image-bus.c b/src/portable/portabled-image-bus.c index 7bbe4663fe..d0b098801d 100644 --- a/src/portable/portabled-image-bus.c +++ b/src/portable/portabled-image-bus.c @@ -1093,6 +1093,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)