summaryrefslogtreecommitdiff
path: root/innobase
diff options
context:
space:
mode:
authorunknown <heikki@hundin.mysql.fi>2003-07-30 01:12:33 +0300
committerunknown <heikki@hundin.mysql.fi>2003-07-30 01:12:33 +0300
commit30b751f8a625c6ce839ee90b0de57e657f07c50e (patch)
treeff0047239a520386049cb44da105c1bf0647dff5 /innobase
parent17a6d749d47e17022adce053671e7060190d2494 (diff)
downloadmariadb-git-30b751f8a625c6ce839ee90b0de57e657f07c50e.tar.gz
dict0dict.c:
Fix bug introduced in 4.0.13 and reported by Emic: if a CREATE TABLE ended in a comment, a memory overrun could happen innobase/dict/dict0dict.c: Fix bug introduced in 4.0.13 and reported by Emic: if a CREATE TABLE ended in a comment, a memory overrun could happen
Diffstat (limited to 'innobase')
-rw-r--r--innobase/dict/dict0dict.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/innobase/dict/dict0dict.c b/innobase/dict/dict0dict.c
index b1d7b5f762e..924fa3ecf95 100644
--- a/innobase/dict/dict0dict.c
+++ b/innobase/dict/dict0dict.c
@@ -2405,9 +2405,12 @@ dict_strip_comments(
ptr = str;
for (;;) {
+scan_more:
if (*sptr == '\0') {
*ptr = '\0';
+ ut_a(ptr <= str + strlen(sql_string));
+
return(str);
}
@@ -2421,7 +2424,7 @@ dict_strip_comments(
|| *sptr == (char)0x0D
|| *sptr == '\0') {
- break;
+ goto scan_more;
}
sptr++;
@@ -2435,12 +2438,12 @@ dict_strip_comments(
sptr += 2;
- break;
+ goto scan_more;
}
if (*sptr == '\0') {
- break;
+ goto scan_more;
}
sptr++;