diff options
author | heikki@hundin.mysql.fi <> | 2005-03-03 17:20:05 +0200 |
---|---|---|
committer | heikki@hundin.mysql.fi <> | 2005-03-03 17:20:05 +0200 |
commit | 47440f4b5a9fdc346faff4d3fffd5d0cbe8a61ca (patch) | |
tree | 64a2b84a3e58cfe4a273619bb72c1c969e80f5af | |
parent | ce553fc2fe5c3bb751f65819ebd7a1922dc745f2 (diff) | |
download | mariadb-git-47440f4b5a9fdc346faff4d3fffd5d0cbe8a61ca.tar.gz |
os0file.c:
AIX 5.1 after security patch ML7 seems to contain a bug that instead of EEXIST it sets errno to 0 if a file creation fails because the file already exists. Work around that bug by interpreting errno 0 in AIX as EEXIST.
-rw-r--r-- | innobase/os/os0file.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/innobase/os/os0file.c b/innobase/os/os0file.c index cadf1c0385f..334452e09ae 100644 --- a/innobase/os/os0file.c +++ b/innobase/os/os0file.c @@ -291,6 +291,15 @@ os_file_get_last_error(void) return(OS_FILE_NOT_FOUND); } else if (err == EEXIST) { return(OS_FILE_ALREADY_EXISTS); +#ifdef UNIV_AIX + } else if (err == 0) { + fprintf(stderr, +"InnoDB: errno is 0. Since AIX 5.1 after security patch ML7 erroneously\n" +"InnoDB: sets errno to 0 when it should be EEXIST, we assume that the real\n" +"InnoDB: error here was EEXIST.\n"); + + return(OS_FILE_ALREADY_EXISTS); +#endif } else { return(100 + err); } |