From fb4644bdbd0181c1aeea88c692cb40eea5fbf178 Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Fri, 13 Aug 2010 10:52:40 +0300 Subject: [PATCH] Conditionalize rpm_execcon() usage on per-transaction flags - If we aren't laying down file contexts, executing scriptlets in contexts doesn't make much sense either as its just likely to fail. - System-wide settings, such as is_selinux_enabled() value, are very ambiguous when it comes to chroots, using per-transaction controllable flags instead lets callers decide. --- lib/psm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/psm.c b/lib/psm.c index 38e093a..af1d412 100644 --- a/lib/psm.c +++ b/lib/psm.c @@ -411,10 +411,11 @@ static rpmRC runScript(rpmpsm psm, ARGV_const_t prefixes, { rpmRC rc = RPMRC_OK; int warn_only =(script->tag != RPMTAG_PREIN && script->tag != RPMTAG_PREUN); + int selinux = !(rpmtsFlags(psm->ts) & RPMTRANS_FLAG_NOCONTEXTS); rpmswEnter(rpmtsOp(psm->ts, RPMTS_OP_SCRIPTLETS), 0); rc = rpmScriptRun(script, arg1, arg2, rpmtsScriptFd(psm->ts), - prefixes, warn_only, rpmtsSELinuxEnabled(psm->ts)); + prefixes, warn_only, selinux); rpmswExit(rpmtsOp(psm->ts, RPMTS_OP_SCRIPTLETS), 0); /* -- 2.7.4