031387
Prefix mysql_ to the real names of several symbols that have to be exported
031387
from libmysqlclient because mysql-connector-odbc and/or PHP depend on them.
031387
This limits the intrusion on application namespace.
031387
031387
Also, remove all traces of make_scrambled_password and
031387
make_scrambled_password_323, so that references to these functions draw
031387
compile-time warnings, per a suggestion from Paul Howarth in bug #690346.
031387
It doesn't seem worth trying to get rid of all the internal symbols exposed
031387
by mysql.h, but these two are relatively easy to get rid of.
031387
031387
031387
diff -up mariadb-5.5.28a/client/mysqladmin.cc.p6 mariadb-5.5.28a/client/mysqladmin.cc
031387
--- mariadb-5.5.28a/client/mysqladmin.cc.p6	2012-11-28 16:49:36.000000000 +0100
031387
+++ mariadb-5.5.28a/client/mysqladmin.cc	2013-01-30 16:30:55.047537674 +0100
031387
@@ -22,6 +22,7 @@
031387
 #include <my_pthread.h>				/* because of signal()	*/
031387
 #include <sys/stat.h>
031387
 #include <mysql.h>
031387
+#include <password.h>       /* my_make_scrambled_password_323, my_make_scrambled_password */
031387
 #include <sql_common.h>
031387
 #include <welcome_copyright_notice.h>           /* ORACLE_WELCOME_COPYRIGHT_NOTICE */
031387
 
031387
@@ -1065,9 +1066,9 @@ static int execute_commands(MYSQL *mysql
031387
           }
031387
         }
031387
         if (old)
031387
-          make_scrambled_password_323(crypted_pw, typed_password);
031387
+          my_make_scrambled_password_323(crypted_pw, typed_password, strlen(typed_password));
031387
         else
031387
-          make_scrambled_password(crypted_pw, typed_password);
031387
+          my_make_scrambled_password(crypted_pw, typed_password, strlen(typed_password));
031387
       }
031387
       else
031387
 	crypted_pw[0]=0;			/* No password */
031387
diff -up mariadb-5.5.28a/include/errmsg.h.p6 mariadb-5.5.28a/include/errmsg.h
031387
--- mariadb-5.5.28a/include/errmsg.h.p6	2012-11-28 16:49:43.000000000 +0100
031387
+++ mariadb-5.5.28a/include/errmsg.h	2013-01-30 16:30:55.047537674 +0100
031387
@@ -24,6 +24,7 @@ extern "C" {
031387
 #endif
031387
 void	init_client_errs(void);
031387
 void	finish_client_errs(void);
031387
+#define client_errors mysql_client_errors		/* namespace sanity */
031387
 extern const char *client_errors[];	/* Error messages */
031387
 #ifdef	__cplusplus
031387
 }
031387
diff -up mariadb-5.5.28a/include/mysql_com.h.p6 mariadb-5.5.28a/include/mysql_com.h
031387
--- mariadb-5.5.28a/include/mysql_com.h.p6	2012-11-28 16:49:38.000000000 +0100
031387
+++ mariadb-5.5.28a/include/mysql_com.h	2013-01-30 16:30:55.047537674 +0100
031387
@@ -467,6 +467,7 @@ my_bool	my_net_init(NET *net, Vio* vio);
031387
 void	my_net_local_init(NET *net);
031387
 void	net_end(NET *net);
031387
   void	net_clear(NET *net, my_bool clear_buffer);
031387
+#define net_realloc mysql_net_realloc		/* namespace sanity */
031387
 my_bool net_realloc(NET *net, size_t length);
031387
 my_bool	net_flush(NET *net);
031387
 my_bool	my_net_write(NET *net,const unsigned char *packet, size_t len);
031387
@@ -545,14 +546,12 @@ void create_random_string(char *to, unsi
031387
                           struct my_rnd_struct *rand_st);
031387
 
031387
 void hash_password(unsigned long *to, const char *password, unsigned int password_len);
031387
-void make_scrambled_password_323(char *to, const char *password);
031387
 void scramble_323(char *to, const char *message, const char *password);
031387
 my_bool check_scramble_323(const unsigned char *reply, const char *message,
031387
                            unsigned long *salt);
031387
 void get_salt_from_password_323(unsigned long *res, const char *password);
031387
 void make_password_from_salt_323(char *to, const unsigned long *salt);
031387
 
031387
-void make_scrambled_password(char *to, const char *password);
031387
 void scramble(char *to, const char *message, const char *password);
031387
 my_bool check_scramble(const unsigned char *reply, const char *message,
031387
                        const unsigned char *hash_stage2);
031387
diff -up mariadb-5.5.28a/include/mysql.h.pp.p6 mariadb-5.5.28a/include/mysql.h.pp
031387
--- mariadb-5.5.28a/include/mysql.h.pp.p6	2012-11-28 16:49:47.000000000 +0100
031387
+++ mariadb-5.5.28a/include/mysql.h.pp	2013-01-30 16:30:55.048537674 +0100
031387
@@ -84,7 +84,7 @@ my_bool my_net_init(NET *net, Vio* vio);
031387
 void my_net_local_init(NET *net);
031387
 void net_end(NET *net);
031387
   void net_clear(NET *net, my_bool clear_buffer);
031387
-my_bool net_realloc(NET *net, size_t length);
031387
+my_bool mysql_net_realloc(NET *net, size_t length);
031387
 my_bool net_flush(NET *net);
031387
 my_bool my_net_write(NET *net,const unsigned char *packet, size_t len);
031387
 my_bool net_write_command(NET *net,unsigned char command,
031387
@@ -124,13 +124,11 @@ typedef struct st_udf_init
031387
 void create_random_string(char *to, unsigned int length,
031387
                           struct my_rnd_struct *rand_st);
031387
 void hash_password(unsigned long *to, const char *password, unsigned int password_len);
031387
-void make_scrambled_password_323(char *to, const char *password);
031387
 void scramble_323(char *to, const char *message, const char *password);
031387
 my_bool check_scramble_323(const unsigned char *reply, const char *message,
031387
                            unsigned long *salt);
031387
 void get_salt_from_password_323(unsigned long *res, const char *password);
031387
 void make_password_from_salt_323(char *to, const unsigned long *salt);
031387
-void make_scrambled_password(char *to, const char *password);
031387
 void scramble(char *to, const char *message, const char *password);
031387
 my_bool check_scramble(const unsigned char *reply, const char *message,
031387
                        const unsigned char *hash_stage2);
031387
diff -up mariadb-5.5.28a/include/my_sys.h.p6 mariadb-5.5.28a/include/my_sys.h
031387
--- mariadb-5.5.28a/include/my_sys.h.p6	2013-01-30 16:30:54.980537678 +0100
031387
+++ mariadb-5.5.28a/include/my_sys.h	2013-01-30 16:31:38.510534702 +0100
031387
@@ -211,6 +211,7 @@ extern uint    my_large_page_size;
031387
 
031387
 /* charsets */
031387
 #define MY_ALL_CHARSETS_SIZE 2048
031387
+#define default_charset_info mysql_default_charset_info        /* namespace sanity */
031387
 extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *default_charset_info;
031387
 extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *all_charsets[MY_ALL_CHARSETS_SIZE];
031387
 extern struct charset_info_st compiled_charsets[];
031387
@@ -943,6 +944,9 @@ extern uint get_charset_number(const cha
031387
 extern uint get_collation_number(const char *name);
031387
 extern const char *get_charset_name(uint cs_number);
031387
 
031387
+#define get_charset mysql_get_charset		/* namespace sanity */
031387
+#define get_charset_by_csname mysql_get_charset_by_csname
031387
+
031387
 extern CHARSET_INFO *get_charset(uint cs_number, myf flags);
031387
 extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags);
031387
 extern CHARSET_INFO *get_charset_by_csname(const char *cs_name,
031387
diff -up mariadb-5.5.28a/sql/password.c.p6 mariadb-5.5.28a/sql/password.c
031387
--- mariadb-5.5.28a/sql/password.c.p6	2012-11-28 16:49:48.000000000 +0100
031387
+++ mariadb-5.5.28a/sql/password.c	2013-01-30 16:30:55.048537674 +0100
031387
@@ -127,23 +127,6 @@ void my_make_scrambled_password_323(char
031387
 
031387
 
031387
 /*
031387
-  Wrapper around my_make_scrambled_password_323() to maintain client lib ABI
031387
-  compatibility.
031387
-  In server code usage of my_make_scrambled_password_323() is preferred to
031387
-  avoid strlen().
031387
-  SYNOPSIS
031387
-    make_scrambled_password_323()
031387
-    to        OUT store scrambled password here
031387
-    password  IN  NULL-terminated string with user-supplied password
031387
-*/
031387
-
031387
-void make_scrambled_password_323(char *to, const char *password)
031387
-{
031387
-  my_make_scrambled_password_323(to, password, strlen(password));
031387
-}
031387
-
031387
-
031387
-/*
031387
     Scramble string with password.
031387
     Used in pre 4.1 authentication phase.
031387
   SYNOPSIS
031387
@@ -407,23 +390,6 @@ void my_make_scrambled_password(char *to
031387
   
031387
 
031387
 /*
031387
-  Wrapper around my_make_scrambled_password() to maintain client lib ABI
031387
-  compatibility.
031387
-  In server code usage of my_make_scrambled_password() is preferred to
031387
-  avoid strlen().
031387
-  SYNOPSIS
031387
-    make_scrambled_password()
031387
-    buf       OUT buffer of size 2*SHA1_HASH_SIZE + 2 to store hex string
031387
-    password  IN  NULL-terminated password string
031387
-*/
031387
-
031387
-void make_scrambled_password(char *to, const char *password)
031387
-{
031387
-  my_make_scrambled_password(to, password, strlen(password));
031387
-}
031387
-
031387
-
031387
-/*
031387
     Produce an obscure octet sequence from password and random
031387
     string, recieved from the server. This sequence corresponds to the
031387
     password, but password can not be easily restored from it. The sequence