diff options
author | monty@mashka.mysql.fi <> | 2003-03-11 21:45:39 +0200 |
---|---|---|
committer | monty@mashka.mysql.fi <> | 2003-03-11 21:45:39 +0200 |
commit | 7fdf7a410146d9a5fa0c188b448ce005ed9ca7f2 (patch) | |
tree | d17bc1d0b5fdc6a665d6c6e6eb79be134b419f2d /mysys | |
parent | 2c9a16873c24c5f0bd286846b95669d261218e2f (diff) | |
parent | c38125c5db32151c6696a96dd0469db1064c6027 (diff) | |
download | mariadb-git-7fdf7a410146d9a5fa0c188b448ce005ed9ca7f2.tar.gz |
merge with 3.23 to get:
- Better detection of crashed .MYI file
- Ignore writeable config files
Diffstat (limited to 'mysys')
-rw-r--r-- | mysys/default.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/mysys/default.c b/mysys/default.c index c354e1744bc..cfdda17fb5f 100644 --- a/mysys/default.c +++ b/mysys/default.c @@ -38,6 +38,7 @@ #include "mysys_priv.h" #include "m_string.h" #include "m_ctype.h" +#include <my_dir.h> char *defaults_extra_file=0; @@ -61,13 +62,13 @@ DATADIR, NullS, }; -#define default_ext ".cnf" /* extension for config file */ +#define default_ext ".cnf" /* extension for config file */ #ifdef __WIN__ #include <winbase.h> #define windows_ext ".ini" #endif -static my_bool search_default_file(DYNAMIC_ARRAY *args, MEM_ROOT *alloc, +static my_bool search_default_file(DYNAMIC_ARRAY *args,MEM_ROOT *alloc, const char *dir, const char *config_file, const char *ext, TYPELIB *group); @@ -242,6 +243,20 @@ static my_bool search_default_file(DYNAMIC_ARRAY *args, MEM_ROOT *alloc, { strmov(name,config_file); } + fn_format(name,name,"","",4); +#if !defined(__WIN__) && !defined(OS2) + { + MY_STAT stat_info; + if (!my_stat(name,&stat_info,MYF(0))) + return 0; + if (stat_info.st_mode & S_IWOTH) /* ignore world-writeable files */ + { + fprintf(stderr, "warning: World-writeable config file %s is ignored\n", + name); + return 0; + } + } +#endif if (!(fp = my_fopen(fn_format(name,name,"","",4),O_RDONLY,MYF(0)))) return 0; /* Ignore wrong files */ |