From: Lennart Poettering Date: Wed, 21 Jun 2017 18:45:23 +0000 (+0200) Subject: core: return a friendlier error for a dbus path referring to a non-existent unit X-Git-Tag: v234~111^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F6164%2Fhead;p=thirdparty%2Fsystemd.git core: return a friendlier error for a dbus path referring to a non-existent unit See: #6059 --- diff --git a/src/core/manager.c b/src/core/manager.c index cff38e28dea..8b818bec91a 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -2319,7 +2319,10 @@ int manager_load_unit_from_dbus_path(Manager *m, const char *s, sd_bus_error *e, return sd_bus_error_setf(e, BUS_ERROR_NO_UNIT_FOR_INVOCATION_ID, "No unit with the specified invocation ID " SD_ID128_FORMAT_STR " known.", SD_ID128_FORMAT_VAL(invocation_id)); } - /* If this didn't work, we use the suffix as unit name. */ + /* If this didn't work, we check if this is a unit name */ + if (!unit_name_is_valid(n, UNIT_NAME_PLAIN|UNIT_NAME_INSTANCE)) + return sd_bus_error_setf(e, SD_BUS_ERROR_INVALID_ARGS, "Unit name %s is neither a valid invocation ID nor unit name.", n); + r = manager_load_unit(m, n, NULL, e, &u); if (r < 0) return r;