From b787f5fd34b55e3f9568b8a392fcc4c7a0c8917e Mon Sep 17 00:00:00 2001 From: "Alan T. DeKok" Date: Mon, 3 Nov 2014 11:45:27 -0500 Subject: [PATCH] Allow all UTF-8 characters --- src/modules/rlm_sql/rlm_sql.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/modules/rlm_sql/rlm_sql.c b/src/modules/rlm_sql/rlm_sql.c index 0b85d33..056ca05 100644 --- a/src/modules/rlm_sql/rlm_sql.c +++ b/src/modules/rlm_sql/rlm_sql.c @@ -429,6 +429,24 @@ static size_t sql_escape_func(char *out, size_t outlen, const char *in) size_t len = 0; while (in[0]) { + size_t utf8_len; + + /* + * Allow all multi-byte UTF8 characters. + */ + utf8_len = fr_utf8_char((uint8_t const *) in); + if (utf8_len > 1) { + if (outlen <= utf8_len) break; + + memcpy(out, in, utf8_len); + in += utf8_len; + out += utf8_len; + + outlen -= utf8_len; + len += utf8_len; + continue; + } + /* * Non-printable characters get replaced with their * mime-encoded equivalents. -- 2.1.4