From: Yu Watanabe Date: Thu, 28 Jun 2018 05:05:39 +0000 (+0900) Subject: conf-parser,login: logs description of error in parsing size X-Git-Tag: v240~1005 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1e5f4e8ba2bb37f903c5c46ff64600ac86539b52;p=thirdparty%2Fsystemd.git conf-parser,login: logs description of error in parsing size --- diff --git a/src/login/logind-user.c b/src/login/logind-user.c index 8c4cd54a29b..99358360ab8 100644 --- a/src/login/logind-user.c +++ b/src/login/logind-user.c @@ -720,8 +720,10 @@ int config_parse_tmpfs_size( /* If the passed argument was not a percentage, or out of range, parse as byte size */ r = parse_size(rvalue, 1024, &k); - if (r < 0 || k <= 0 || (uint64_t) (size_t) k != k) { - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse size value, ignoring: %s", rvalue); + if (r >= 0 && (k <= 0 || (uint64_t) (size_t) k != k)) + r = -ERANGE; + if (r < 0) { + log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse size value '%s', ignoring: %m", rvalue); return 0; } diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index 2d62fdf05dc..b21ecee1299 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -532,8 +532,10 @@ int config_parse_iec_size(const char* unit, assert(data); r = parse_size(rvalue, 1024, &v); - if (r < 0 || (uint64_t) (size_t) v != v) { - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse size value, ignoring: %s", rvalue); + if (r >= 0 && (uint64_t) (size_t) v != v) + r = -ERANGE; + if (r < 0) { + log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse size value '%s', ignoring: %m", rvalue); return 0; } @@ -563,8 +565,10 @@ int config_parse_si_size( assert(data); r = parse_size(rvalue, 1000, &v); - if (r < 0 || (uint64_t) (size_t) v != v) { - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse size value, ignoring: %s", rvalue); + if (r >= 0 && (uint64_t) (size_t) v != v) + r = -ERANGE; + if (r < 0) { + log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse size value '%s', ignoring: %m", rvalue); return 0; }