Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1191400 > unrolled thread

[PATCH] lib/string_helpers: clarify esc arg in string_escape_mem

Started byKees Cook <keescook@chromium.org>
First post2015-07-24 01:20 +0200
Last post2015-07-30 22:00 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] lib/string_helpers: clarify esc arg in string_escape_mem Kees Cook <keescook@chromium.org> - 2015-07-24 01:20 +0200
    Re: [PATCH] lib/string_helpers: clarify esc arg in string_escape_mem Rasmus Villemoes <linux@rasmusvillemoes.dk> - 2015-07-30 22:00 +0200

#1191400 — [PATCH] lib/string_helpers: clarify esc arg in string_escape_mem

FromKees Cook <keescook@chromium.org>
Date2015-07-24 01:20 +0200
Subject[PATCH] lib/string_helpers: clarify esc arg in string_escape_mem
Message-ID<pPxWq-4F6-17@gated-at.bofh.it>
The esc argument is used to reduce which characters will be escaped.
For example, using " " with ESCAPE_SPACE will not produce any escaped
spaces.

Signed-off-by: Kees Cook <keescook@chromium.org>
---
 lib/string_helpers.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/lib/string_helpers.c b/lib/string_helpers.c
index c98ae818eb4e..0a307a97d489 100644
--- a/lib/string_helpers.c
+++ b/lib/string_helpers.c
@@ -410,7 +410,7 @@ static bool escape_hex(unsigned char c, char **dst, char *end)
  * @dst:	destination buffer (escaped)
  * @osz:	destination buffer size
  * @flags:	combination of the flags (bitwise OR):
- *	%ESCAPE_SPACE:
+ *	%ESCAPE_SPACE: (special white space, not space itself)
  *		'\f' - form feed
  *		'\n' - new line
  *		'\r' - carriage return
@@ -432,8 +432,10 @@ static bool escape_hex(unsigned char c, char **dst, char *end)
  *		all previous together
  *	%ESCAPE_HEX:
  *		'\xHH' - byte with hexadecimal value HH (2 digits)
- * @esc:	NULL-terminated string of characters any of which, if found in
- *		the source, has to be escaped
+ * @esc:	NULL-terminated string containing characters used to limit
+ *		the selected escape class. If characters are included in @esc
+ *		that would not normally be escaped by the classes selected
+ *		in @flags, they will be copied to @dst unescaped.
  *
  * Description:
  * The process of escaping byte buffer includes several parts. They are applied
@@ -441,7 +443,7 @@ static bool escape_hex(unsigned char c, char **dst, char *end)
  *	1. The character is matched to the printable class, if asked, and in
  *	   case of match it passes through to the output.
  *	2. The character is not matched to the one from @esc string and thus
- *	   must go as is to the output.
+ *	   must go as-is to the output.
  *	3. The character is checked if it falls into the class given by @flags.
  *	   %ESCAPE_OCTAL and %ESCAPE_HEX are going last since they cover any
  *	   character. Note that they actually can't go together, otherwise
-- 
1.9.1


-- 
Kees Cook
Chrome OS Security
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1196404

FromRasmus Villemoes <linux@rasmusvillemoes.dk>
Date2015-07-30 22:00 +0200
Message-ID<pS29J-8f1-13@gated-at.bofh.it>
In reply to#1191400
On Fri, Jul 24 2015, Kees Cook <keescook@chromium.org> wrote:

> The esc argument is used to reduce which characters will be escaped.
> For example, using " " with ESCAPE_SPACE will not produce any escaped
> spaces.
>

Yeah, I've been confused by this more than once - the old description
and the parameter name suggest that the esc string contains additional
characters to escape, not the other way around.

Could we also rename the parameter 'only' or something like that? In any
case,

Acked-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web