[apparmor] fix: pass through escape sequences that result in aare special chars
John Johansen
john.johansen at canonical.com
Thu Jun 19 19:28:18 UTC 2014
fix: pass through escape sequences that result in aare special chars
escape sequences that result in special character that will be interpreted
by later processing need to be passed through as well.
Eg. previously \\ was fixed to be passed through, but other chars
get interpretted as well.
*?[]{}
and ^, in character classes
Signed-off-by: John Johansen <john.johansen at canonical.com>
---
parser/parser_misc.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
--- 2.9-test.orig/parser/parser_misc.c
+++ 2.9-test/parser/parser_misc.c
@@ -459,12 +459,13 @@
long c;
if (*string == '\\' && len > 1 &&
(c = strn_escseq(&pos, "", len)) != -1) {
- /* catch \\ or \134 and pass it through to be handled
- * by the backend pcre conversion
+ /* catch \\ or \134 and other aare special chars and
+ * pass it through to be handled by the backend
+ * pcre conversion
*/
- if (c == '\\') {
- *s++ = '\\';
+ if (strchr("*?[]()^,\\", c) != NULL) {
*s++ = '\\';
+ *s++ = c;
} else
*s++ = c;
len -= pos - string;
More information about the AppArmor
mailing list