summaryrefslogtreecommitdiff
path: root/innobase
diff options
context:
space:
mode:
authorunknown <heikki@hundin.mysql.fi>2005-03-03 18:00:34 +0200
committerunknown <heikki@hundin.mysql.fi>2005-03-03 18:00:34 +0200
commit560968258f615959419102de6d86707545c69655 (patch)
tree6b4ec9267f0cdc1428f11a512f47b25817767e05 /innobase
parentf3d52f8c8c9889c2882f39fd31c63d588783ea3a (diff)
downloadmariadb-git-560968258f615959419102de6d86707545c69655.tar.gz
srv0start.c:
Work around the AIX 5.1 security patch ML7 problem in errno when it should be EEXIST innobase/srv/srv0start.c: Work around the AIX 5.1 security patch ML7 problem in errno when it should be EEXIST
Diffstat (limited to 'innobase')
-rw-r--r--innobase/srv/srv0start.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/innobase/srv/srv0start.c b/innobase/srv/srv0start.c
index fe05f07df21..44cf645f170 100644
--- a/innobase/srv/srv0start.c
+++ b/innobase/srv/srv0start.c
@@ -568,7 +568,14 @@ open_or_create_log_file(
files[i] = os_file_create(name, OS_FILE_CREATE, OS_FILE_NORMAL,
OS_LOG_FILE, &ret);
if (ret == FALSE) {
- if (os_file_get_last_error(FALSE) != OS_FILE_ALREADY_EXISTS) {
+ if (os_file_get_last_error(FALSE) != OS_FILE_ALREADY_EXISTS
+#ifdef UNIV_AIX
+ /* AIX 5.1 after security patch ML7 may have errno set
+ to 0 here, which causes our function to return 100;
+ work around that AIX problem */
+ && os_file_get_last_error(FALSE) != 100
+#endif
+ ) {
fprintf(stderr,
"InnoDB: Error in creating or opening %s\n", name);
@@ -728,7 +735,14 @@ open_or_create_data_files(
OS_FILE_NORMAL, OS_DATA_FILE, &ret);
if (ret == FALSE && os_file_get_last_error(FALSE) !=
- OS_FILE_ALREADY_EXISTS) {
+ OS_FILE_ALREADY_EXISTS
+#ifdef UNIV_AIX
+ /* AIX 5.1 after security patch ML7 may have
+ errno set to 0 here, which causes our function
+ to return 100; work around that AIX problem */
+ && os_file_get_last_error(FALSE) != 100
+#endif
+ ) {
fprintf(stderr,
"InnoDB: Error in creating or opening %s\n",
name);