From d496ac5d4e32963bab3068ed34171afbcef831ce Mon Sep 17 00:00:00 2001 From: "Alan T. DeKok" Date: Wed, 14 Sep 2016 11:03:06 -0400 Subject: [PATCH] Use normal escape routines, and not special ones. --- src/modules/rlm_linelog/rlm_linelog.c | 62 +---------------------------------- 1 file changed, 1 insertion(+), 61 deletions(-) diff --git a/src/modules/rlm_linelog/rlm_linelog.c b/src/modules/rlm_linelog/rlm_linelog.c index c3bc263..3d4219c 100644 --- a/src/modules/rlm_linelog/rlm_linelog.c +++ b/src/modules/rlm_linelog/rlm_linelog.c @@ -162,10 +162,6 @@ static size_t linelog_escape_func(UNUSED REQUEST *request, char *out, size_t outlen, char const *in, UNUSED void *arg) { - const char *p = in; - char *q = out; - size_t freespace = outlen; - if (outlen == 0) return 0; if (outlen == 1) { @@ -173,63 +169,7 @@ static size_t linelog_escape_func(UNUSED REQUEST *request, return 0; } - while (*p) { - int sp; - size_t len; - - if (freespace < 2) break; - - switch (*p) { - case '\r': - sp = 'r'; - break; - - case '\n': - sp = 'n'; - break; - - case '\t': - sp = 't'; - break; - - case '\\': - sp = '\\'; - break; - - default: - sp = 0; - break; - } - - if (sp) { - if (freespace < 3) break; - - *q++ = '\\'; - *q++ = sp; - freespace -= 2; - p++; - continue; - } - - if (*p >= ' ') { - *(q++) = *(p++); - freespace--; - continue; - } - - if (freespace < 5) break; - - snprintf(q, freespace, "\\%03o", (uint8_t) *p); - - len = strlen(q); - freespace -= len; - p++; - q += len; - } - - *q = '\0'; - - return q - out; + return fr_prints(out, outlen, in, -1, 0); } static rlm_rcode_t CC_HINT(nonnull) mod_do_linelog(void *instance, REQUEST *request) -- 2.1.4