From 67e2baff6be8052f48dfdb2258fb68d63c95fe01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Koutn=C3=BD?= Date: Wed, 24 Jun 2020 20:40:02 +0200 Subject: [PATCH] cgroup: Parse infinity properly for memory protections This fixes commit db2b8d2e2895010f3443a589c9c1f1dfb25256a6 that rectified parsing empty values but broke parsing explicit infinity. Intended parsing semantics will be captured in a testcase in a follow up commit. Ref: #16248 --- src/core/load-fragment.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index c3186f3824..636ff65476 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -3427,13 +3427,12 @@ int config_parse_memory_limit( uint64_t bytes = CGROUP_LIMIT_MAX; int r; - if (STR_IN_SET(lvalue, "DefaultMemoryLow", - "DefaultMemoryMin", - "MemoryLow", - "MemoryMin")) + if (isempty(rvalue) && STR_IN_SET(lvalue, "DefaultMemoryLow", + "DefaultMemoryMin", + "MemoryLow", + "MemoryMin")) bytes = CGROUP_LIMIT_MIN; - - if (!isempty(rvalue) && !streq(rvalue, "infinity")) { + else if (!isempty(rvalue) && !streq(rvalue, "infinity")) { r = parse_permille(rvalue); if (r < 0) {