diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-08-13 18:18:25 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-08-13 18:18:25 +0300 |
commit | 4bd56a697ff2d2edc230a82dbfcf4412ef0996df (patch) | |
tree | 77a6e74518875d83ecaf6447b5f5b8801ef50b2f /plugin/server_audit | |
parent | 863e28ff3ed0a5859561c397cbfb492170989ddd (diff) | |
parent | 3e617b8bef50a81b10b8152d800a1b8b38859913 (diff) | |
download | mariadb-git-4bd56a697ff2d2edc230a82dbfcf4412ef0996df.tar.gz |
Merge 10.2 into 10.3
Diffstat (limited to 'plugin/server_audit')
-rw-r--r-- | plugin/server_audit/server_audit.c | 60 |
1 files changed, 32 insertions, 28 deletions
diff --git a/plugin/server_audit/server_audit.c b/plugin/server_audit/server_audit.c index 460c038dfd0..4e45b36ec3e 100644 --- a/plugin/server_audit/server_audit.c +++ b/plugin/server_audit/server_audit.c @@ -1430,7 +1430,6 @@ static size_t escape_string_hide_passwords(const char *str, unsigned int len, const char *res_start= result; const char *res_end= result + result_len - 2; size_t d_len; - char b_char; while (len) { @@ -1468,27 +1467,28 @@ static size_t escape_string_hide_passwords(const char *str, unsigned int len, if (*next_s) { - memmove(result + d_len, "*****", 5); + const char b_char= *next_s++; + memset(result + d_len, '*', 5); result+= d_len + 5; - b_char= *(next_s++); - } - else - result+= d_len; - while (*next_s) - { - if (*next_s == b_char) - { - ++next_s; - break; - } - if (*next_s == '\\') + while (*next_s) { - if (next_s[1]) - next_s++; + if (*next_s == b_char) + { + ++next_s; + break; + } + if (*next_s == '\\') + { + if (next_s[1]) + next_s++; + } + next_s++; } - next_s++; } + else + result+= d_len; + len-= (uint)(next_s - str); str= next_s; continue; @@ -1496,19 +1496,23 @@ static size_t escape_string_hide_passwords(const char *str, unsigned int len, no_password: if (result >= res_end) break; - if ((b_char= escaped_char(*str))) + else { - if (result+1 >= res_end) - break; - *(result++)= '\\'; - *(result++)= b_char; + const char b_char= escaped_char(*str); + if (b_char) + { + if (result+1 >= res_end) + break; + *(result++)= '\\'; + *(result++)= b_char; + } + else if (is_space(*str)) + *(result++)= ' '; + else + *(result++)= *str; + str++; + len--; } - else if (is_space(*str)) - *(result++)= ' '; - else - *(result++)= *str; - str++; - len--; } *result= 0; return result - res_start; |