diff options
author | heikki@donna.mysql.fi <> | 2001-08-13 18:37:00 +0300 |
---|---|---|
committer | heikki@donna.mysql.fi <> | 2001-08-13 18:37:00 +0300 |
commit | 335dda93b49cb38bad660c01690af6c16d03816f (patch) | |
tree | dc09004912f361fb61f2cd3ab7819721f6099761 /sql | |
parent | bfbc3252e18a17c12fa48a12f01a0223aed123af (diff) | |
download | mariadb-git-335dda93b49cb38bad660c01690af6c16d03816f.tar.gz |
row0sel.c Fix a memory freeing bug when a row which contains an externally stored long field in the middle of the row is fetched in a SELECT
srv0start.c Allow drive name followed by a ':' in a data file path
ha_innobase.cc Allow drive name followed by a ':' in a data file path
Diffstat (limited to 'sql')
-rw-r--r-- | sql/ha_innobase.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/sql/ha_innobase.cc b/sql/ha_innobase.cc index 7bd71363915..d0cb8af906a 100644 --- a/sql/ha_innobase.cc +++ b/sql/ha_innobase.cc @@ -259,12 +259,15 @@ innobase_parse_data_file_paths_and_sizes(void) str = innobase_data_file_path; /* First calculate the number of data files and check syntax: - path:size[M];path:size[M]... */ + path:size[M];path:size[M]... . Note that a Windows path may + contain a drive name and a ':'. */ while (*str != '\0') { path = str; - while (*str != ':' && *str != '\0') { + while ((*str != ':' && *str != '\0') + || (*str == ':' + && (*(str + 1) == '\\' || *(str + 1) == '/'))) { str++; } @@ -335,7 +338,11 @@ innobase_parse_data_file_paths_and_sizes(void) while (*str != '\0') { path = str; - while (*str != ':' && *str != '\0') { + /* Note that we must ignore the ':' in a Windows path */ + + while ((*str != ':' && *str != '\0') + || (*str == ':' + && (*(str + 1) == '\\' || *(str + 1) == '/'))) { str++; } |