diff options
author | unknown <msvensson@shellback.(none)> | 2006-03-23 23:09:34 +0100 |
---|---|---|
committer | unknown <msvensson@shellback.(none)> | 2006-03-23 23:09:34 +0100 |
commit | f97d76ac1cf7a46d49a293da2cd4b68e903fd4ca (patch) | |
tree | eb0621a921c1dc071414dca29960377ff5bc2f1f /mysys/my_lib.c | |
parent | e1da710d5b00172a42e56948ccda253e148fb0b9 (diff) | |
download | mariadb-git-f97d76ac1cf7a46d49a293da2cd4b68e903fd4ca.tar.gz |
Bug#18474 Unlistable directories yield no info from information_schema, part2
- Make the windows implementation of 'my_dir' behave like the default implementation
mysys/my_lib.c:
If 'findfirst' returns EINVAL, just continue and return 0 files to read in this dir.
Diffstat (limited to 'mysys/my_lib.c')
-rw-r--r-- | mysys/my_lib.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/mysys/my_lib.c b/mysys/my_lib.c index 4ca343064d3..522fa56cbf1 100644 --- a/mysys/my_lib.c +++ b/mysys/my_lib.c @@ -398,14 +398,6 @@ MY_DIR *my_dir(const char *path, myf MyFlags) tmp_file[2]='*'; tmp_file[3]='\0'; -#ifdef __BORLANDC__ - if ((handle= findfirst(tmp_path,&find,0)) == -1L) - goto error; -#else - if ((handle=_findfirst(tmp_path,&find)) == -1L) - goto error; -#endif - if (!(buffer= my_malloc(ALIGN_SIZE(sizeof(MY_DIR)) + ALIGN_SIZE(sizeof(DYNAMIC_ARRAY)) + sizeof(MEM_ROOT), MyFlags))) @@ -425,7 +417,23 @@ MY_DIR *my_dir(const char *path, myf MyFlags) /* MY_DIR structure is allocated and completly initialized at this point */ result= (MY_DIR*)buffer; - + +#ifdef __BORLANDC__ + if ((handle= findfirst(tmp_path,&find,0)) == -1L) +#else + if ((handle=_findfirst(tmp_path,&find)) == -1L) +#endif + { + DBUG_PRINT("info", ("find_first returned error")); + if (errno != EINVAL) + goto error; + /* + Could not read the directory, no read access. + Probably because by "chmod -r". + continue and return zero files in dir + */ + } + do { #ifdef __BORLANDC__ |