summaryrefslogtreecommitdiff
path: root/strings
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2005-02-28 11:59:46 +0200
committerunknown <monty@mysql.com>2005-02-28 11:59:46 +0200
commit8b8c9452ddc734c42301f64e625c31779968232a (patch)
tree93113f7a95c643d072853092d2abc4344982b8e9 /strings
parent54dadffc749e283b95ff513f0a686fd84a1132d9 (diff)
downloadmariadb-git-8b8c9452ddc734c42301f64e625c31779968232a.tar.gz
Fixed wrong memory references found by purify
(No really critical errors found, but a few possible wrong results) innobase/dict/dict0dict.c: Replace memcmp with comparison of characters to avoid warnings from purify when 'sptr' points to a very short string mysql-test/r/select_found.result: Add missing drop table mysql-test/r/type_set.result: More tests mysql-test/t/select_found.test: Add missing drop table mysql-test/t/type_set.test: More tests mysys/my_init.c: Avoid warning from purify (purify doesn't handle getrusage() properly) sql/field.h: enum & set are sorted as numbers. This fixes an access to uninitialized memory when enum/set are multi-byte characters sql/filesort.cc: enum & set are sorted as numbers. This fixes an access to uninitialized memory when enum/set are multi-byte characters sql/item_cmpfunc.cc: Fixed warning from purify. (Not critical as the arguments are passed to a function but not used) Allocate Arg_comparator() with 'new' instead of sql_alloc() to ensure proper initialization sql/mysqld.cc: Wait for signal handler to stop when running --bootstrap (Fixes warning from purify) sql/sql_insert.cc: Initialize slot used by innodb.cc (not critical) sql/sql_lex.h: Better comments sql/sql_repl.cc: memcmp -> bcmp() to avoid warning from purify sql/sql_select.cc: Fix for out-of-bound memory reference when doing DISTINCT on const expressions strings/ctype-simple.c: Fixes to not access uninitialized memory (Not critical)
Diffstat (limited to 'strings')
-rw-r--r--strings/ctype-simple.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/strings/ctype-simple.c b/strings/ctype-simple.c
index c2a6aa4e17f..080e0b780b7 100644
--- a/strings/ctype-simple.c
+++ b/strings/ctype-simple.c
@@ -518,7 +518,6 @@ longlong my_strntoll_8bit(CHARSET_INFO *cs __attribute__((unused)),
register unsigned int cutlim;
register ulonglong i;
register const char *s, *e;
- register unsigned char c;
const char *save;
int overflow;
@@ -581,8 +580,9 @@ longlong my_strntoll_8bit(CHARSET_INFO *cs __attribute__((unused)),
overflow = 0;
i = 0;
- for (c = *s; s != e; c = *++s)
+ for ( ; s != e; s++)
{
+ register unsigned char c= *s;
if (c>='0' && c<='9')
c -= '0';
else if (c>='A' && c<='Z')
@@ -641,7 +641,6 @@ ulonglong my_strntoull_8bit(CHARSET_INFO *cs,
register unsigned int cutlim;
register ulonglong i;
register const char *s, *e;
- register unsigned char c;
const char *save;
int overflow;
@@ -704,8 +703,10 @@ ulonglong my_strntoull_8bit(CHARSET_INFO *cs,
overflow = 0;
i = 0;
- for (c = *s; s != e; c = *++s)
+ for ( ; s != e; s++)
{
+ register unsigned char c= *s;
+
if (c>='0' && c<='9')
c -= '0';
else if (c>='A' && c<='Z')