Inside of virSetUIDGIDWithCaps() there's a naked call to capng_apply(), i.e. without any retval check. This is potentially dangerous as capng_apply() may fail. Do the check and report an error. This also fixes the build on bleeding edge distros - like Fedora rawhide - where the function is declared with 'warn unused result' [1]. 1: https://github.com/stevegrubb/libcap-ng/commit/a0743c335c9a16a2fda9b25120a5523742119e47 Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> --- src/util/virutil.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/util/virutil.c b/src/util/virutil.c index b5b65fb415..edc39b981f 100644 --- a/src/util/virutil.c +++ b/src/util/virutil.c @@ -1200,8 +1200,12 @@ virSetUIDGIDWithCaps(uid_t uid, gid_t gid, gid_t *groups, int ngroups, * do this if we failed to get the capability above, so ignore the * return value. */ - if (!need_setpcap) - capng_apply(CAPNG_SELECT_BOUNDS); + if (!need_setpcap && + (capng_ret = capng_apply(CAPNG_SELECT_BOUNDS)) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("cannot apply process capabilities %1$d"), capng_ret); + return -1; + } /* Drop the caps that allow setuid/gid (unless they were requested) */ if (need_setgid) -- 2.41.0