logind: don't clobber bus error structure if we don't fail

This commit is contained in:
Lennart Poettering 2018-08-06 21:41:54 +02:00
parent e6958b7ea3
commit ea3a7cf6c3
1 changed files with 7 additions and 7 deletions

View File

@ -3081,7 +3081,8 @@ int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, c
return strdup_job(reply, job); return strdup_job(reply, job);
} }
int manager_abandon_scope(Manager *manager, const char *scope, sd_bus_error *error) { int manager_abandon_scope(Manager *manager, const char *scope, sd_bus_error *ret_error) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_free_ char *path = NULL; _cleanup_free_ char *path = NULL;
int r; int r;
@ -3098,17 +3099,16 @@ int manager_abandon_scope(Manager *manager, const char *scope, sd_bus_error *err
path, path,
"org.freedesktop.systemd1.Scope", "org.freedesktop.systemd1.Scope",
"Abandon", "Abandon",
error, &error,
NULL, NULL,
NULL); NULL);
if (r < 0) { if (r < 0) {
if (sd_bus_error_has_name(error, BUS_ERROR_NO_SUCH_UNIT) || if (sd_bus_error_has_name(&error, BUS_ERROR_NO_SUCH_UNIT) ||
sd_bus_error_has_name(error, BUS_ERROR_LOAD_FAILED) || sd_bus_error_has_name(&error, BUS_ERROR_LOAD_FAILED) ||
sd_bus_error_has_name(error, BUS_ERROR_SCOPE_NOT_RUNNING)) { sd_bus_error_has_name(&error, BUS_ERROR_SCOPE_NOT_RUNNING))
sd_bus_error_free(error);
return 0; return 0;
}
sd_bus_error_move(ret_error, &error);
return r; return r;
} }