diff options
Diffstat (limited to 'lib/string_helpers.c')
| -rw-r--r-- | lib/string_helpers.c | 19 | 
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/string_helpers.c b/lib/string_helpers.c index 4403e1924f73..3a90a9e2b94a 100644 --- a/lib/string_helpers.c +++ b/lib/string_helpers.c @@ -540,6 +540,25 @@ int string_escape_mem(const char *src, size_t isz, char *dst, size_t osz,  }  EXPORT_SYMBOL(string_escape_mem); +int string_escape_mem_ascii(const char *src, size_t isz, char *dst, +					size_t osz) +{ +	char *p = dst; +	char *end = p + osz; + +	while (isz--) { +		unsigned char c = *src++; + +		if (!isprint(c) || !isascii(c) || c == '"' || c == '\\') +			escape_hex(c, &p, end); +		else +			escape_passthrough(c, &p, end); +	} + +	return p - dst; +} +EXPORT_SYMBOL(string_escape_mem_ascii); +  /*   * Return an allocated string that has been escaped of special characters   * and double quotes, making it safe to log in quotes.  | 
