Skip to content

Commit

Permalink
MDEV-13002 mysqltest regex replace results in incorrect result
Browse files Browse the repository at this point in the history
regex didn't replace lines that were split by 16K chunk reads.
  • Loading branch information
vuvova committed Jun 18, 2017
1 parent c661b4d commit c7141fa
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions client/mysqltest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1698,12 +1698,22 @@ int cat_file(DYNAMIC_STRING* ds, const char* filename)
{
int fd;
size_t len;
char buff[16384];
char *buff;

if ((fd= my_open(filename, O_RDONLY, MYF(0))) < 0)
return 1;
while((len= my_read(fd, (uchar*)&buff,
sizeof(buff)-1, MYF(0))) > 0)

len= (size_t) my_seek(fd, 0, SEEK_END, MYF(0));
my_seek(fd, 0, SEEK_SET, MYF(0));
if (len == (size_t)MY_FILEPOS_ERROR ||
!(buff= (char*)my_malloc(len + 1, MYF(0))))
{
my_close(fd, MYF(0));
return 1;
}
len= my_read(fd, (uchar*)buff, len, MYF(0));
my_close(fd, MYF(0));

{
char *p= buff, *start= buff,*end=buff+len;
while (p < end)
Expand All @@ -1726,7 +1736,7 @@ int cat_file(DYNAMIC_STRING* ds, const char* filename)
*p= 0;
replace_dynstr_append_mem(ds, start, p-start);
}
my_close(fd, MYF(0));
my_free(buff);
return 0;
}

Expand Down

0 comments on commit c7141fa

Please sign in to comment.