summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorunknown <reggie@mdk10.(none)>2005-05-20 16:04:10 -0500
committerunknown <reggie@mdk10.(none)>2005-05-20 16:04:10 -0500
commitc1ae672adda45a1b8c5637b8f4d6a3f91378ea20 (patch)
tree3c11d9563166e2b2ee03a1165069c1f02dfba30a /include
parent25d661adfc144d0de605ff07907ed9004155466d (diff)
downloadmariadb-git-c1ae672adda45a1b8c5637b8f4d6a3f91378ea20.tar.gz
BUG# 9148: Denial of service
The problem was that on Windows the access method indicates that access to file such as "com1" and "lpt1" is allowed (since they are device names) and this causes mysql to attempt to open them as databases or tables. The fix was to write our own my_access method that uses other Win32 functions to determine if the given argument is indeed a file and has to requested mode. VC++Files/mysys/mysys.dsp: added my_access VC++Files/mysys/mysys_ia64.dsp: added my_access.c include/my_sys.h: if on windows, we use my_access. if not on windows, then my_access points to the native access method mysys/Makefile.am: added my_access to mysys build file mysys/mf_pack.c: changed call to access to my_access sql/sql_db.cc: changed call to access to my_access
Diffstat (limited to 'include')
-rw-r--r--include/my_sys.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/my_sys.h b/include/my_sys.h
index c9552f8558b..a0a008056ae 100644
--- a/include/my_sys.h
+++ b/include/my_sys.h
@@ -573,6 +573,11 @@ extern char *_my_strdup_with_length(const byte *from, uint length,
const char *sFile, uint uLine,
myf MyFlag);
+#ifdef __WIN__
+extern int my_access(const char *path, int amode);
+#else
+#define my_access access
+#endif
#ifndef TERMINATE
extern void TERMINATE(FILE *file);