summaryrefslogtreecommitdiff
path: root/strings
diff options
context:
space:
mode:
authorTor Didriksen <tor.didriksen@oracle.com>2013-06-14 16:38:27 +0200
committerTor Didriksen <tor.didriksen@oracle.com>2013-06-14 16:38:27 +0200
commit45f739bd9d4a98545ca2d7df7f13923e2d31faaa (patch)
treeb8d4007924e7adfcaf400fe6726763ad8e386dc4 /strings
parentc94ccb237e5f8b0f72c742746aa49f8ff8440f98 (diff)
downloadmariadb-git-45f739bd9d4a98545ca2d7df7f13923e2d31faaa.tar.gz
Bug#14834378 ADDRESSSANITIZER BUG IN FILENAME_TO_TABLENAME
Backport to 5.5 sql/sql_table.cc: gcc asan crashes in filename_to_tablename() on this: memcmp("-@", "#sql", 4) during loading of the innobase plugin
Diffstat (limited to 'strings')
-rw-r--r--strings/ctype-utf8.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c
index 343884827e1..4976a9cf31a 100644
--- a/strings/ctype-utf8.c
+++ b/strings/ctype-utf8.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -4391,6 +4391,8 @@ my_mb_wc_filename(CHARSET_INFO *cs __attribute__((unused)),
return MY_CS_TOOSMALL3;
byte1= s[1];
+ if (byte1 == 0)
+ return MY_CS_ILSEQ; /* avoid possible out-of-bounds read */
byte2= s[2];
if (byte1 >= 0x30 && byte1 <= 0x7F &&