mirror of
https://gitlab.com/apparmor/apparmor
synced 2025-08-22 10:07:12 +00:00
Fix the octal escape sequence that was broken, so that short escapes \0, \00 \xa, didn't work and actually resulted in some encoding bugs. Also we were missing support for the decimal # conversion \d123 Incorporate and update Steve Beattie's unit tests of escape sequences patch v2 - unify escape sequence processing, creating lib fns. - address Steve Beattie's feedback - incorporate Steve Beattie's feedback v3 - address Seth's feedback - add missing strn_escseq tests - expand strn_escseq to take a 3rd parameter to allow specifying chars to convert straight across. . eg "+" will cause it to convert \+ as + - fix libapparmor/parse.y failed escape pass through to match processunqoted Unit tests by Steve Beattie Signed-off-by: John Johansen <john.johansen@canonical.com> Acked-by: Seth Arnold <seth.arnold@canonical.com>
21 lines
553 B
C
21 lines
553 B
C
#ifndef __AA_LIB_H_
|
|
#define __AA_LIB_H_
|
|
|
|
#include <dirent.h>
|
|
|
|
#define min(a,b) \
|
|
({ __typeof__ (a) _a = (a); \
|
|
__typeof__ (b) _b = (b); \
|
|
_a < _b ? _a : _b; })
|
|
|
|
int dirat_for_each(DIR *dir, const char *name, void *data,
|
|
int (* cb)(DIR *, const char *, struct stat *, void *));
|
|
|
|
bool isodigit(char c);
|
|
long strntol(const char *str, const char **endptr, int base, long maxval,
|
|
size_t n);
|
|
int strn_escseq(const char **pos, const char *chrs, size_t n);
|
|
int str_escseq(const char **pos, const char *chrs);
|
|
|
|
#endif /* __AA_LIB_H_ */
|