summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorheikki@donna.mysql.fi <>2001-08-13 18:37:00 +0300
committerheikki@donna.mysql.fi <>2001-08-13 18:37:00 +0300
commit335dda93b49cb38bad660c01690af6c16d03816f (patch)
treedc09004912f361fb61f2cd3ab7819721f6099761 /sql
parentbfbc3252e18a17c12fa48a12f01a0223aed123af (diff)
downloadmariadb-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.cc13
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++;
}