summaryrefslogtreecommitdiff
path: root/server-tools/instance-manager/commands.cc
diff options
context:
space:
mode:
Diffstat (limited to 'server-tools/instance-manager/commands.cc')
-rw-r--r--server-tools/instance-manager/commands.cc15
1 files changed, 9 insertions, 6 deletions
diff --git a/server-tools/instance-manager/commands.cc b/server-tools/instance-manager/commands.cc
index ad9d46be1ed..0f801c8cc7e 100644
--- a/server-tools/instance-manager/commands.cc
+++ b/server-tools/instance-manager/commands.cc
@@ -470,7 +470,8 @@ int Show_instance_log::execute(struct st_net *net, ulong connection_id)
size_t buff_size;
int read_len;
/* calculate buffer size */
- struct stat file_stat;
+ MY_STAT file_stat;
+ Buffer read_buff;
/* my_fstat doesn't use the flag parameter */
if (my_fstat(fd, &file_stat, MYF(0)))
@@ -478,13 +479,16 @@ int Show_instance_log::execute(struct st_net *net, ulong connection_id)
buff_size= (size - offset);
+ read_buff.reserve(0, buff_size);
+
/* read in one chunk */
read_len= my_seek(fd, file_stat.st_size - size, MY_SEEK_SET, MYF(0));
- char *bf= (char*) malloc(sizeof(char)*buff_size);
- if ((read_len= my_read(fd, bf, buff_size, MYF(0))) < 0)
+ if ((read_len= my_read(fd, (byte*) read_buff.buffer,
+ buff_size, MYF(0))) < 0)
return ER_READ_FILE;
- store_to_protocol_packet(&send_buff, (char*) bf, &position, read_len);
+ store_to_protocol_packet(&send_buff, read_buff.buffer,
+ &position, read_len);
close(fd);
}
else
@@ -605,7 +609,7 @@ int Show_instance_log_files::execute(struct st_net *net, ulong connection_id)
store_to_protocol_packet(&send_buff, "", &position);
store_to_protocol_packet(&send_buff, (char*) "0", &position);
}
- else if (S_ISREG(file_stat.st_mode))
+ else if (MY_S_ISREG(file_stat.st_mode))
{
store_to_protocol_packet(&send_buff,
(char*) log_files->value,
@@ -693,7 +697,6 @@ int Set_option::correct_file(int skip)
error= modify_defaults_file(Options::config_file, option,
option_value, instance_name, skip);
-
switch (error)
{
case 0: