Commit b6bd61d4 authored by tsmith@maint1.mysql.com's avatar tsmith@maint1.mysql.com
Browse files

Merge maint1.mysql.com:/data/localhome/tsmith/bk/41

into  maint1.mysql.com:/data/localhome/tsmith/bk/maint/41
parents 52200be6 4c9af559
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -90,6 +90,16 @@ extern char* tgoto(const char*, int, int);
extern char* tgetstr(char*, char**);
#endif


#if !HAVE_DECL_TGOTO
/*
  'tgoto' is not declared in the system header files, this causes
  problems on 64-bit systems. The function returns a 64 bit pointer
  but caller see it as "int" and it's thus truncated to 32-bit
*/
extern char* tgoto(const char*, int, int);
#endif

protected void	term_move_to_line(EditLine *, int);
protected void	term_move_to_char(EditLine *, int);
protected void	term_clear_EOL(EditLine *, int);
+13 −0
Original line number Diff line number Diff line
@@ -1960,6 +1960,19 @@ else
fi
AC_SUBST(TERMCAP_LIB)

# Check if the termcap function 'tgoto' is already declared in
# system header files or if it need to be declared locally
AC_CHECK_DECLS(tgoto,,,[
#ifdef HAVE_CURSES_H
# include <curses.h>
#elif HAVE_NCURSES_H
# include <ncurses.h>
#endif
#ifdef HAVE_TERM_H
# include <term.h>
#endif
])

LIBEDIT_LOBJECTS=""
AC_CHECK_FUNC(strunvis, ,[LIBEDIT_LOBJECTS="$LIBEDIT_LOBJECTS unvis.o"])
AC_CHECK_FUNC(strvis,   ,[LIBEDIT_LOBJECTS="$LIBEDIT_LOBJECTS vis.o"])
+8 −2
Original line number Diff line number Diff line
@@ -909,9 +909,12 @@ static int check_connection(THD *thd)
    Old clients send null-terminated string as password; new clients send
    the size (1 byte) + string (not null-terminated). Hence in case of empty
    password both send '\0'.

    Cast *passwd to an unsigned char, so that it doesn't extend the sign for
    *passwd > 127 and become 2**32-127 after casting to uint.
  */
  uint passwd_len= thd->client_capabilities & CLIENT_SECURE_CONNECTION ?
    *passwd++ : strlen(passwd);
    (uchar)(*passwd++) : strlen(passwd);
  db= thd->client_capabilities & CLIENT_CONNECT_WITH_DB ?
    db + passwd_len + 1 : 0;
  uint db_len= db ? strlen(db) : 0;
@@ -1442,11 +1445,14 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
      Old clients send null-terminated string ('\0' for empty string) for
      password.  New clients send the size (1 byte) + string (not null
      terminated, so also '\0' for empty string).

      Cast *passwd to an unsigned char, so that it doesn't extend the sign
      for *passwd > 127 and become 2**32-127 after casting to uint.
    */
    char db_buff[NAME_LEN+1];                 // buffer to store db in utf8 
    char *db= passwd;
    uint passwd_len= thd->client_capabilities & CLIENT_SECURE_CONNECTION ? 
      *passwd++ : strlen(passwd);
      (uchar)(*passwd++) : strlen(passwd);
    db+= passwd_len + 1;
#ifndef EMBEDDED_LIBRARY
    /* Small check for incomming packet */