From: Jan Synacek Date: Tue, 7 Oct 2014 11:35:41 +0000 (+0200) Subject: core: don't allow enabling if unit is masked X-Git-Tag: v217~288 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=f7101b7368dfe41dbc8b7203e06133cccb589c01 core: don't allow enabling if unit is masked --- diff --git a/src/shared/install.c b/src/shared/install.c index fa064c230..945bb2748 100644 --- a/src/shared/install.c +++ b/src/shared/install.c @@ -1516,6 +1516,19 @@ int unit_file_enable( return r; STRV_FOREACH(i, files) { + UnitFileState state; + + state = unit_file_get_state(scope, root_dir, *i); + if (state < 0) { + log_error("Failed to get unit file state for %s: %s", *i, strerror(-state)); + return state; + } + + if (state == UNIT_FILE_MASKED || state == UNIT_FILE_MASKED_RUNTIME) { + log_error("Failed to enable unit: Unit %s is masked", *i); + return -ENOTSUP; + } + r = install_info_add_auto(&c, *i); if (r < 0) return r;