mirror of
https://github.com/systemd/systemd.git
synced 2024-12-13 12:13:37 +08:00
Do not print invalid UTF-8 in error messages
Inexplicably, 550a40ec
('core: do not print invalid utf-8 in error
messages') only fixed two paths. Convert all of them now.
This commit is contained in:
parent
6e18964d3a
commit
b5d742138f
Notes:
Zbigniew Jędrzejewski-Szmek
2014-03-07 00:22:13 -05:00
Backport: bugfix
@ -536,9 +536,7 @@ int config_parse_exec(const char *unit,
|
||||
}
|
||||
|
||||
if (!utf8_is_valid(path)) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, EINVAL,
|
||||
"Path is not UTF-8 clean, ignoring assignment: %s",
|
||||
rvalue);
|
||||
log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue);
|
||||
r = 0;
|
||||
goto fail;
|
||||
}
|
||||
@ -553,9 +551,7 @@ int config_parse_exec(const char *unit,
|
||||
}
|
||||
|
||||
if (!utf8_is_valid(c)) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, EINVAL,
|
||||
"Path is not UTF-8 clean, ignoring assignment: %s",
|
||||
rvalue);
|
||||
log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue);
|
||||
r = 0;
|
||||
goto fail;
|
||||
}
|
||||
@ -1960,8 +1956,7 @@ int config_parse_unit_requires_mounts_for(
|
||||
return log_oom();
|
||||
|
||||
if (!utf8_is_valid(n)) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, EINVAL,
|
||||
"Path is not UTF-8 clean, ignoring assignment: %s", rvalue);
|
||||
log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -2885,7 +2880,7 @@ int config_parse_namespace_path_strv(
|
||||
return log_oom();
|
||||
|
||||
if (!utf8_is_valid(n)) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Path is not UTF-8 clean, ignoring assignment: %s", rvalue);
|
||||
log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -585,7 +585,7 @@ int config_parse_string(
|
||||
assert(data);
|
||||
|
||||
if (!utf8_is_valid(rvalue)) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, EINVAL, "String is not UTF-8 clean, ignoring assignment: %s", rvalue);
|
||||
log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -623,7 +623,7 @@ int config_parse_path(
|
||||
assert(data);
|
||||
|
||||
if (!utf8_is_valid(rvalue)) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Path is not UTF-8 clean, ignoring assignment: %s", rvalue);
|
||||
log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -688,8 +688,7 @@ int config_parse_strv(const char *unit,
|
||||
return log_oom();
|
||||
|
||||
if (!utf8_is_valid(n)) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, EINVAL,
|
||||
"String is not UTF-8 clean, ignoring: %s", rvalue);
|
||||
log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -121,6 +121,12 @@ int log_syntax_internal(const char *unit, int level,
|
||||
config_file, config_line, \
|
||||
error, __VA_ARGS__)
|
||||
|
||||
#define log_invalid_utf8(unit, level, config_file, config_line, error, rvalue) { \
|
||||
_cleanup_free_ char *__p = utf8_escape_invalid(rvalue); \
|
||||
log_syntax(unit, level, config_file, config_line, error, \
|
||||
"String is not UTF-8 clean, ignoring assignment: %s", __p); \
|
||||
}
|
||||
|
||||
#define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \
|
||||
int function(const char *unit, \
|
||||
const char *filename, \
|
||||
|
@ -598,15 +598,18 @@ static int load_env_file_push(const char *filename, unsigned line,
|
||||
int r;
|
||||
|
||||
if (!utf8_is_valid(key)) {
|
||||
_cleanup_free_ char *t = utf8_escape_invalid(key);
|
||||
|
||||
log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.",
|
||||
filename, line, key);
|
||||
filename, line, t);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (value && !utf8_is_valid(value)) {
|
||||
/* FIXME: filter UTF-8 */
|
||||
_cleanup_free_ char *t = utf8_escape_invalid(value);
|
||||
|
||||
log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.",
|
||||
filename, line, key, value);
|
||||
filename, line, key, t);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user