Fix GCC 10.0 -Wstringop-overflow
myrg_open(): Reduce the scope of the variable 'end' and simplify the code. For some reason, I got no warning for this code in the 10.2 branch, only 10.3 or later. The ENGINE=MERGE is covered by the tests main.merge, main.merge_debug, and main.merge-big.
This commit is contained in:
parent
d9d3c222ca
commit
ed21202a14
@ -1,5 +1,6 @@
|
||||
/*
|
||||
Copyright (c) 2000, 2011, Oracle and/or its affiliates
|
||||
Copyright (c) 2010, 2020, MariaDB Corporation.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -38,7 +39,7 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking)
|
||||
int save_errno,errpos=0;
|
||||
uint files= 0, i, dir_length, length, UNINIT_VAR(key_parts), min_keys= 0;
|
||||
ulonglong file_offset=0;
|
||||
char name_buff[FN_REFLEN*2],buff[FN_REFLEN],*end;
|
||||
char name_buff[FN_REFLEN*2],buff[FN_REFLEN];
|
||||
MYRG_INFO *m_info=0;
|
||||
File fd;
|
||||
IO_CACHE file;
|
||||
@ -62,8 +63,9 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking)
|
||||
dir_length=dirname_part(name_buff, name, &name_buff_length);
|
||||
while ((length=my_b_gets(&file,buff,FN_REFLEN-1)))
|
||||
{
|
||||
if ((end=buff+length)[-1] == '\n')
|
||||
end[-1]='\0';
|
||||
char *end= &buff[length - 1];
|
||||
if (*end == '\n')
|
||||
*end= '\0';
|
||||
if (buff[0] && buff[0] != '#')
|
||||
files++;
|
||||
}
|
||||
@ -71,8 +73,9 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking)
|
||||
my_b_seek(&file, 0);
|
||||
while ((length=my_b_gets(&file,buff,FN_REFLEN-1)))
|
||||
{
|
||||
if ((end=buff+length)[-1] == '\n')
|
||||
*--end='\0';
|
||||
char *end= &buff[length - 1];
|
||||
if (*end == '\n')
|
||||
*end= '\0';
|
||||
if (!buff[0])
|
||||
continue; /* Skip empty lines */
|
||||
if (buff[0] == '#')
|
||||
|
Loading…
x
Reference in New Issue
Block a user