1
0
mirror of https://github.com/systemd/systemd.git synced 2025-02-04 21:47:31 +03:00

core: fix CapabilityBoundingSet merging

Fixes: #1221
This commit is contained in:
Evgeny Vereshchagin 2015-10-27 14:40:28 +03:00
parent f47fc3ffc4
commit b9d345b53f

View File

@ -976,6 +976,7 @@ int config_parse_bounding_set(const char *unit,
void *userdata) {
uint64_t *capability_bounding_set_drop = data;
uint64_t capability_bounding_set;
const char *word, *state;
size_t l;
bool invert = false;
@ -1015,10 +1016,11 @@ int config_parse_bounding_set(const char *unit,
if (!isempty(state))
log_syntax(unit, LOG_ERR, filename, line, 0, "Trailing garbage, ignoring.");
if (invert)
*capability_bounding_set_drop |= sum;
capability_bounding_set = invert ? ~sum : sum;
if (*capability_bounding_set_drop)
*capability_bounding_set_drop = ~(~*capability_bounding_set_drop | capability_bounding_set);
else
*capability_bounding_set_drop |= ~sum;
*capability_bounding_set_drop = ~capability_bounding_set;
return 0;
}