diff --git a/src/core/settings/nm-agent-manager.c b/src/core/settings/nm-agent-manager.c index 0a1206493..19b3cfcba 100644 --- a/src/core/settings/nm-agent-manager.c +++ b/src/core/settings/nm-agent-manager.c @@ -327,11 +327,17 @@ validate_identifier(const char *identifier, GError **error) /* FIXME: do complete validation here */ while (p && *p) { if (!g_ascii_isalnum(*p) && (*p != '_') && (*p != '-') && (*p != '.')) { + char invalid_char[5] = {*p}; + + if (!g_ascii_isprint(*p)) { + g_snprintf(invalid_char, sizeof(invalid_char), "\\x%02x", *p); + } + g_set_error(error, NM_AGENT_MANAGER_ERROR, NM_AGENT_MANAGER_ERROR_INVALID_IDENTIFIER, - "Identifier contains invalid character '%c'", - *p); + "Identifier contains invalid character '%s'", + invalid_char); return FALSE; }