Skip to content

Commit

Permalink
Fixed that caused failure in --ps binlog_encryption.rpl_gtid_basic
Browse files Browse the repository at this point in the history
Problem was that replace_dynstr_append_mem() assumed strings are
null terminated which is not always the case.
  • Loading branch information
montywi committed Mar 17, 2020
1 parent a2d24de commit 517f659
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
7 changes: 5 additions & 2 deletions client/mysqltest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11145,13 +11145,16 @@ void replace_dynstr_append_mem(DYNAMIC_STRING *ds, const char *val, size_t len)
{
/* Convert to lower case, and do this first */
char *c= lower;
for (const char *v= val; *v; v++)
for (const char *v= val, *end_v= v + len; v < end_v; v++)
*c++= my_tolower(charset_info, *v);
*c= '\0';
/* Copy from this buffer instead */
}
else
memcpy(lower, val, len+1);
{
memcpy(lower, val, len);
lower[len]= 0;
}
fix_win_paths(lower, len);
val= lower;
}
Expand Down
3 changes: 2 additions & 1 deletion sql/sql_class.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3002,7 +3002,8 @@ int select_send::send_data(List<Item> &items)

thd->inc_sent_row_count(1);

if (thd->vio_ok())
/* Don't return error if disconnected, only if write fails */
if (likely(thd->vio_ok()))
DBUG_RETURN(protocol->write());

DBUG_RETURN(0);
Expand Down

0 comments on commit 517f659

Please sign in to comment.