Skip to content

Commit 7024c07

Browse files
committed
continue after \r, \n, \t
1 parent b6af51d commit 7024c07

File tree

1 file changed

+7
-16
lines changed

1 file changed

+7
-16
lines changed

src/modules/rlm_sql/rlm_sql.c

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -950,7 +950,7 @@ static ssize_t sql_escape_func(UNUSED request_t *request, char *out, size_t outl
950950
rlm_sql_t const *inst = talloc_get_type_abort_const(arg, rlm_sql_t);
951951
size_t len = 0;
952952

953-
while (in[0]) {
953+
while (*in) {
954954
size_t utf8_len;
955955

956956
/*
@@ -974,46 +974,37 @@ static ssize_t sql_escape_func(UNUSED request_t *request, char *out, size_t outl
974974
* we're now responsible for escaping all special
975975
* chars in an xlat expansion or attribute value.
976976
*/
977-
switch (in[0]) {
977+
switch (*in) {
978978
case '\n':
979979
if (outlen <= 2) break;
980980
out[0] = '\\';
981981
out[1] = 'n';
982-
983-
in++;
984-
out += 2;
985-
outlen -= 2;
986-
len += 2;
987-
break;
982+
goto next;
988983

989984
case '\r':
990985
if (outlen <= 2) break;
991986
out[0] = '\\';
992987
out[1] = 'r';
993-
994-
in++;
995-
out += 2;
996-
outlen -= 2;
997-
len += 2;
998-
break;
988+
goto next;
999989

1000990
case '\t':
1001991
if (outlen <= 2) break;
1002992
out[0] = '\\';
1003993
out[1] = 't';
1004994

995+
next:
1005996
in++;
1006997
out += 2;
1007998
outlen -= 2;
1008999
len += 2;
1009-
break;
1000+
continue;
10101001
}
10111002

10121003
/*
10131004
* Non-printable characters get replaced with their
10141005
* mime-encoded equivalents.
10151006
*/
1016-
if ((in[0] < 32) ||
1007+
if ((*in < 32) ||
10171008
strchr(inst->config.allowed_chars, *in) == NULL) {
10181009
/*
10191010
* Only 3 or less bytes available.

0 commit comments

Comments
 (0)