From d79e52a77c9968bb2645d542da158ee27b4a5fd7 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 12 Feb 2003 21:55:37 +0200 Subject: Fixed a lot of wrong memory references as reported by valgrind Portability fixes Added new client function: mysql_get_server_version() New server help code (From Victor Vagin) Fixed wrong usage of binary() Disabled RTREE usage for now. BitKeeper/etc/ignore: added scripts/fill_help_tables.sql client/mysql.cc: Some fixes when using 'help' cmd-line-utils/libedit/compat.h: Portability fix cmd-line-utils/libedit/fgetln.c: Portability fix include/mysql.h: Added new client function: mysql_get_server_version() libmysql/libmysql.c: Added new client function: mysql_get_server_version() libmysqld/libmysqld.c: Fixed prototype mysql-test/install_test_db.sh: Added creation of help tables mysql-test/r/connect.result: Added help tables mysql-test/r/myisam.result: Test of RTREE index mysql-test/r/type_ranges.result: updated results mysql-test/t/myisam.test: Test of RTREE index mysql-test/t/type_ranges.test: Updated test mysys/charset.c: Indentation change mysys/my_symlink.c: Removed compiler warning scripts/fill_help_tables.sh: Update for new help tables sql/field.cc: Indentation changes sql/filesort.cc: Optimized character set usage sql/item_cmpfunc.cc: Fix wrong usage of binary() sql/item_cmpfunc.h: Fix wrong usage of binary() sql/item_func.cc: Fix wrong usage of binary() sql/item_func.h: Fix wrong usage of binary() sql/item_strfunc.cc: Fix wrong usage of binary() sql/item_sum.cc: Fix wrong usage of binary() sql/item_sum.h: Fix wrong usage of binary() sql/key.cc: Indentation change sql/lex.h: HELP -> HELP_SYM sql/mysql_priv.h: Make get_field() more general sql/password.c: Indentation change + variable initialisation moved sql/sql_acl.cc: Make get_field() more general sql/sql_base.cc: Added comments + assertion for double call to mysql_lock_tables sql/sql_cache.cc: Indentation changes sql/sql_class.h: Added need_strxnfrm to SORT_FIELD to be able to optimise character set handling in filesort sql/sql_derived.cc: Renamed variables sql/sql_help.cc: New help functions (from Victor Vagin) sql/sql_lex.cc: Removed variables that doesn't have to be initialized for each query sql/sql_lex.h: Removed not used variable (olap) sql/sql_parse.cc: Fixed (not fatal) access of unitialized memory Indentation / code cleanup sql/sql_prepare.cc: Indentaion cleanup sql/sql_table.cc: Disabled RTREE until 5.0 sql/sql_udf.cc: Make get_field() more general sql/sql_yacc.yy: Removed access to uninitialized memory Always set offset_limit and select_limit when using LIMIT (removed warnings) Allow usage of 'help week' sql/table.cc: Make get_field() more general More comments sql/table.h: Fixded type of TABLE_LIST->derived sql/time.cc: Stricter date / datetime handling (to be able to handle timestamps with days and microseconds) strings/ctype-bin.c: Added cha --- sql/password.c | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) (limited to 'sql/password.c') diff --git a/sql/password.c b/sql/password.c index 37040c20683..5ed05ae6c0e 100644 --- a/sql/password.c +++ b/sql/password.c @@ -147,9 +147,9 @@ double rnd(struct rand_struct *rand_st) none */ -void create_random_string(int length,struct rand_struct *rand_st,char* target) +void create_random_string(int length,struct rand_struct *rand_st,char *target) { - char* end=target+length; + char *end=target+length; /* Use pointer arithmetics as it is faster way to do so. */ for (; target=0; t--) { bin_password[t]= (char) (val & 255); - val>>=8; /* Scroll 8 bits to get next part*/ + val>>=8; /* Scroll 8 bits to get next part*/ } - bin_password+=4; /* Get to next 4 chars*/ + bin_password+=4; /* Get to next 4 chars*/ } } else { + unsigned char *bp= bin_password; /* Binary password loop pointer */ + /* Use zero starting hash as an indication of old password */ hash[0]=0; salt_end=salt+2; - bp=bin_password; /* Encode salt using SHA1 here */ sha1_reset(&context); - while (salt=0;t--) { bp[t]= (uchar) (val & 255); - val>>=8; /* Scroll 8 bits to get next part*/ + val>>=8; /* Scroll 8 bits to get next part*/ } - bp+=4; /* Get to next 4 chars*/ + bp+= 4; /* Get to next 4 chars*/ salt++; } /* Use 8 bytes of binary password for hash */ @@ -599,7 +600,7 @@ void get_hash_and_password(ulong* salt, uint8 pversion, char* hash, unsigned cha */ -void create_key_from_old_password(const char* passwd, char* key) +void create_key_from_old_password(const char *passwd, char *key) { char buffer[SCRAMBLE41_LENGTH]; /* Buffer for various needs */ ulong salt[6]; /* Salt (large for safety) */ @@ -633,7 +634,7 @@ char *scramble(char *to,const char *message,const char *password, struct rand_struct rand_st; ulong hash_pass[2],hash_message[2]; char message_buffer[9]; /* Real message buffer */ - char* msg=message_buffer; + char *msg=message_buffer; /* We use special message buffer now as new server can provide longer hash */ -- cgit v1.2.1