Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
7c5c8999
Commit
7c5c8999
authored
Sep 28, 2006
by
cmiller@zippy.cornsilk.net
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
parents
75a1d1d5
733fa61e
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
43 additions
and
48 deletions
+43
-48
include/mysql_com.h
include/mysql_com.h
+1
-4
mysql-test/t/ctype_utf8.test
mysql-test/t/ctype_utf8.test
+1
-1
scripts/mysql_config.sh
scripts/mysql_config.sh
+8
-7
sql-common/client.c
sql-common/client.c
+3
-3
sql/mysql_priv.h
sql/mysql_priv.h
+1
-1
sql/slave.h
sql/slave.h
+1
-1
sql/sp.cc
sql/sp.cc
+4
-4
sql/sp_head.cc
sql/sp_head.cc
+3
-3
sql/sql_acl.cc
sql/sql_acl.cc
+6
-6
sql/sql_class.h
sql/sql_class.h
+1
-1
sql/sql_parse.cc
sql/sql_parse.cc
+8
-9
sql/sql_repl.h
sql/sql_repl.h
+1
-1
sql/sql_yacc.yy
sql/sql_yacc.yy
+3
-3
sql/table.cc
sql/table.cc
+2
-4
No files found.
include/mysql_com.h
View file @
7c5c8999
...
...
@@ -26,9 +26,6 @@
#define USERNAME_LENGTH 16
#define SERVER_VERSION_LENGTH 60
#define SQLSTATE_LENGTH 5
#define SYSTEM_CHARSET_MBMAXLEN 3
#define NAME_BYTE_LEN NAME_LEN*SYSTEM_CHARSET_MBMAXLEN
#define USERNAME_BYTE_LENGTH USERNAME_LENGTH*SYSTEM_CHARSET_MBMAXLEN
/*
USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain
...
...
@@ -36,7 +33,7 @@
MySQL standard format:
user_name_part@host_name_part\0
*/
#define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_
BYTE_
LENGTH + 2
#define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_LENGTH + 2
#define LOCAL_HOST "localhost"
#define LOCAL_HOST_NAMEDPIPE "."
...
...
mysql-test/t/ctype_utf8.test
View file @
7c5c8999
...
...
@@ -1069,6 +1069,7 @@ explain select a from t1 group by a;
select
a
from
t1
group
by
a
;
drop
table
t1
;
#
# Bug#20393: User name truncation in mysql client
# Bug#21432: Database/Table name limited to 64 bytes, not chars, problems with multi-byte
...
...
@@ -1096,7 +1097,6 @@ explain
select
substr
(
Z
.
a
,
-
1
),
Z
.
a
from
t1
as
Y
join
t1
as
Z
on
Y
.
a
=
Z
.
a
order
by
1
;
select
substr
(
Z
.
a
,
-
1
),
Z
.
a
from
t1
as
Y
join
t1
as
Z
on
Y
.
a
=
Z
.
a
order
by
1
;
drop
table
t1
;
# End of 4.1 tests
#
...
...
scripts/mysql_config.sh
View file @
7c5c8999
...
...
@@ -97,11 +97,11 @@ port='@MYSQL_TCP_PORT@'
ldflags
=
'@LDFLAGS@'
# Create options
# We intentionally add a space to the beginning of lib strings, simplifies replace later
# We intentionally add a space to the beginning
and end
of lib strings, simplifies replace later
libs
=
"
$ldflags
-L
$pkglibdir
-lmysqlclient @ZLIB_DEPS@ @NON_THREADED_LIBS@"
libs
=
"
$libs
@openssl_libs@ @STATIC_NSS_FLAGS@"
libs_r
=
"
$ldflags
-L
$pkglibdir
-lmysqlclient_r @ZLIB_DEPS@ @LIBS@ @openssl_libs@"
embedded_libs
=
"
$ldflags
-L
$pkglibdir
-lmysqld @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@"
libs
=
"
$libs
@openssl_libs@ @STATIC_NSS_FLAGS@
"
libs_r
=
"
$ldflags
-L
$pkglibdir
-lmysqlclient_r @ZLIB_DEPS@ @LIBS@ @openssl_libs@
"
embedded_libs
=
"
$ldflags
-L
$pkglibdir
-lmysqld @ZLIB_DEPS@ @LIBS@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@
"
cflags
=
"-I
$pkgincludedir
@CFLAGS@ "
#note: end space!
include
=
"-I
$pkgincludedir
"
...
...
@@ -111,8 +111,9 @@ include="-I$pkgincludedir"
# and -xstrconst to make --cflags usable for Sun Forte C++
for
remove
in
DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX
\
DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS
\
DEXTRA_DEBUG DHAVE_purify
'O[0-9]'
'W[-A-Za-z]*'
\
Xa xstrconst
"xc99=none"
DEXTRA_DEBUG DHAVE_purify O
'O[0-9]'
'xO[0-9]'
'W[-A-Za-z]*'
\
Xa xstrconst
"xc99=none"
\
unroll2 ip mp restrict
do
# The first option we might strip will always have a space before it because
# we set -I$pkgincludedir as the first option
...
...
@@ -121,7 +122,7 @@ done
cflags
=
`
echo
"
$cflags
"
|sed
-e
's/ *\$//'
`
# Same for --libs(_r)
for
remove
in
lmtmalloc
for
remove
in
lmtmalloc
static-libcxa i-static
do
# We know the strings starts with a space
libs
=
`
echo
"
$libs
"
|sed
-e
"s/ -
$remove
*/ /g"
`
...
...
sql-common/client.c
View file @
7c5c8999
...
...
@@ -1758,7 +1758,7 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user,
const
char
*
passwd
,
const
char
*
db
,
uint
port
,
const
char
*
unix_socket
,
ulong
client_flag
)
{
char
buff
[
NAME_
BYTE_LEN
+
USERNAME_BYT
E_LENGTH
+
100
];
char
buff
[
NAME_
LEN
+
USERNAM
E_LENGTH
+
100
];
char
*
end
,
*
host_info
;
my_socket
sock
;
in_addr_t
ip_addr
;
...
...
@@ -2217,7 +2217,7 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user,
mysql
->
server_status
,
client_flag
));
/* This needs to be changed as it's not useful with big packets */
if
(
user
&&
user
[
0
])
strmake
(
end
,
user
,
USERNAME_
BYTE_
LENGTH
);
/* Max user name */
strmake
(
end
,
user
,
USERNAME_LENGTH
);
/* Max user name */
else
read_user_name
((
char
*
)
end
);
...
...
@@ -2247,7 +2247,7 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user,
/* Add database if needed */
if
(
db
&&
(
mysql
->
server_capabilities
&
CLIENT_CONNECT_WITH_DB
))
{
end
=
strmake
(
end
,
db
,
NAME_
BYTE_
LEN
)
+
1
;
end
=
strmake
(
end
,
db
,
NAME_LEN
)
+
1
;
mysql
->
db
=
my_strdup
(
db
,
MYF
(
MY_WME
));
db
=
0
;
}
...
...
sql/mysql_priv.h
View file @
7c5c8999
...
...
@@ -578,7 +578,7 @@ void get_default_definer(THD *thd, LEX_USER *definer);
LEX_USER
*
create_default_definer
(
THD
*
thd
);
LEX_USER
*
create_definer
(
THD
*
thd
,
LEX_STRING
*
user_name
,
LEX_STRING
*
host_name
);
LEX_USER
*
get_current_user
(
THD
*
thd
,
LEX_USER
*
user
);
bool
check_string_length
(
CHARSET_INFO
*
cs
,
LEX_STRING
*
str
,
bool
check_string_length
(
LEX_STRING
*
str
,
const
char
*
err_msg
,
uint
max_length
);
enum
enum_mysql_completiontype
{
...
...
sql/slave.h
View file @
7c5c8999
...
...
@@ -406,7 +406,7 @@ typedef struct st_master_info
/* the variables below are needed because we can change masters on the fly */
char
master_log_name
[
FN_REFLEN
];
char
host
[
HOSTNAME_LENGTH
+
1
];
char
user
[
USERNAME_
BYTE_
LENGTH
+
1
];
char
user
[
USERNAME_LENGTH
+
1
];
char
password
[
MAX_PASSWORD_LENGTH
+
1
];
my_bool
ssl
;
// enables use of SSL connection if true
char
ssl_ca
[
FN_REFLEN
],
ssl_capath
[
FN_REFLEN
],
ssl_cert
[
FN_REFLEN
];
...
...
sql/sp.cc
View file @
7c5c8999
...
...
@@ -404,16 +404,16 @@ db_load_routine(THD *thd, int type, sp_name *name, sp_head **sphp,
{
LEX
*
old_lex
=
thd
->
lex
,
newlex
;
String
defstr
;
char
old_db_buf
[
NAME_
BYTE_
LEN
+
1
];
char
old_db_buf
[
NAME_LEN
+
1
];
LEX_STRING
old_db
=
{
old_db_buf
,
sizeof
(
old_db_buf
)
};
bool
dbchanged
;
ulong
old_sql_mode
=
thd
->
variables
.
sql_mode
;
ha_rows
old_select_limit
=
thd
->
variables
.
select_limit
;
sp_rcontext
*
old_spcont
=
thd
->
spcont
;
char
definer_user_name_holder
[
USERNAME_
BYTE_
LENGTH
+
1
];
char
definer_user_name_holder
[
USERNAME_LENGTH
+
1
];
LEX_STRING_WITH_INIT
definer_user_name
(
definer_user_name_holder
,
USERNAME_
BYTE_
LENGTH
);
USERNAME_LENGTH
);
char
definer_host_name_holder
[
HOSTNAME_LENGTH
+
1
];
LEX_STRING_WITH_INIT
definer_host_name
(
definer_host_name_holder
,
...
...
@@ -511,7 +511,7 @@ db_create_routine(THD *thd, int type, sp_head *sp)
int
ret
;
TABLE
*
table
;
char
definer
[
USER_HOST_BUFF_SIZE
];
char
old_db_buf
[
NAME_
BYTE_
LEN
+
1
];
char
old_db_buf
[
NAME_LEN
+
1
];
LEX_STRING
old_db
=
{
old_db_buf
,
sizeof
(
old_db_buf
)
};
bool
dbchanged
;
DBUG_ENTER
(
"db_create_routine"
);
...
...
sql/sp_head.cc
View file @
7c5c8999
...
...
@@ -924,7 +924,7 @@ bool
sp_head
::
execute
(
THD
*
thd
)
{
DBUG_ENTER
(
"sp_head::execute"
);
char
old_db_buf
[
NAME_
BYTE_
LEN
+
1
];
char
old_db_buf
[
NAME_LEN
+
1
];
LEX_STRING
old_db
=
{
old_db_buf
,
sizeof
(
old_db_buf
)
};
bool
dbchanged
;
sp_rcontext
*
ctx
;
...
...
@@ -1957,8 +1957,8 @@ sp_head::set_info(longlong created, longlong modified,
void
sp_head
::
set_definer
(
const
char
*
definer
,
uint
definerlen
)
{
char
user_name_holder
[
USERNAME_
BYTE_
LENGTH
+
1
];
LEX_STRING_WITH_INIT
user_name
(
user_name_holder
,
USERNAME_
BYTE_
LENGTH
);
char
user_name_holder
[
USERNAME_LENGTH
+
1
];
LEX_STRING_WITH_INIT
user_name
(
user_name_holder
,
USERNAME_LENGTH
);
char
host_name_holder
[
HOSTNAME_LENGTH
+
1
];
LEX_STRING_WITH_INIT
host_name
(
host_name_holder
,
HOSTNAME_LENGTH
);
...
...
sql/sql_acl.cc
View file @
7c5c8999
...
...
@@ -54,7 +54,7 @@ static byte* acl_entry_get_key(acl_entry *entry,uint *length,
}
#define IP_ADDR_STRLEN (3+1+3+1+3+1+3)
#define ACL_KEY_LENGTH (IP_ADDR_STRLEN+1+NAME_
BYTE_LEN+1+USERNAME_BYT
E_LENGTH+1)
#define ACL_KEY_LENGTH (IP_ADDR_STRLEN+1+NAME_
LEN+1+USERNAM
E_LENGTH+1)
static
DYNAMIC_ARRAY
acl_hosts
,
acl_users
,
acl_dbs
;
static
MEM_ROOT
mem
,
memex
;
...
...
@@ -197,7 +197,7 @@ static my_bool acl_load(THD *thd, TABLE_LIST *tables)
READ_RECORD
read_record_info
;
my_bool
return_val
=
1
;
bool
check_no_resolve
=
specialflag
&
SPECIAL_NO_RESOLVE
;
char
tmp_name
[
NAME_
BYTE_
LEN
+
1
];
char
tmp_name
[
NAME_LEN
+
1
];
int
password_length
;
DBUG_ENTER
(
"acl_load"
);
...
...
@@ -2264,7 +2264,7 @@ static GRANT_NAME *name_hash_search(HASH *name_hash,
const
char
*
user
,
const
char
*
tname
,
bool
exact
)
{
char
helping
[
NAME_
BYTE_LEN
*
2
+
USERNAME_BYT
E_LENGTH
+
3
];
char
helping
[
NAME_
LEN
*
2
+
USERNAM
E_LENGTH
+
3
];
uint
len
;
GRANT_NAME
*
grant_name
,
*
found
=
0
;
HASH_SEARCH_STATE
state
;
...
...
@@ -3167,7 +3167,7 @@ bool mysql_grant(THD *thd, const char *db, List <LEX_USER> &list,
{
List_iterator
<
LEX_USER
>
str_list
(
list
);
LEX_USER
*
Str
,
*
tmp_Str
;
char
tmp_db
[
NAME_
BYTE_
LEN
+
1
];
char
tmp_db
[
NAME_LEN
+
1
];
bool
create_new_users
=
0
;
TABLE_LIST
tables
[
2
];
DBUG_ENTER
(
"mysql_grant"
);
...
...
@@ -3231,7 +3231,7 @@ bool mysql_grant(THD *thd, const char *db, List <LEX_USER> &list,
{
result
=
TRUE
;
continue
;
}
}
if
(
replace_user_table
(
thd
,
tables
[
0
].
table
,
*
Str
,
(
!
db
?
rights
:
0
),
revoke_grant
,
create_new_users
,
test
(
thd
->
variables
.
sql_mode
&
...
...
@@ -3867,7 +3867,7 @@ bool check_grant_all_columns(THD *thd, ulong want_access, GRANT_INFO *grant,
bool
check_grant_db
(
THD
*
thd
,
const
char
*
db
)
{
Security_context
*
sctx
=
thd
->
security_ctx
;
char
helping
[
NAME_
BYTE_LEN
+
USERNAME_BYT
E_LENGTH
+
2
];
char
helping
[
NAME_
LEN
+
USERNAM
E_LENGTH
+
2
];
uint
len
;
bool
error
=
1
;
...
...
sql/sql_class.h
View file @
7c5c8999
...
...
@@ -200,7 +200,7 @@ class MYSQL_LOG: public TC_LOG
IO_CACHE
log_file
;
IO_CACHE
index_file
;
char
*
name
;
char
time_buff
[
20
],
db
[
NAME_
BYTE_
LEN
+
1
];
char
time_buff
[
20
],
db
[
NAME_LEN
+
1
];
char
log_file_name
[
FN_REFLEN
],
index_file_name
[
FN_REFLEN
];
/*
The max size before rotation (usable only if log_type == LOG_BIN: binary
...
...
sql/sql_parse.cc
View file @
7c5c8999
...
...
@@ -1001,8 +1001,8 @@ static int check_connection(THD *thd)
char
*
passwd
=
strend
(
user
)
+
1
;
uint
user_len
=
passwd
-
user
-
1
;
char
*
db
=
passwd
;
char
db_buff
[
NAME_
BYTE_LEN
+
1
];
// buffer to store db in utf8
char
user_buff
[
USERNAME_
BYTE_
LENGTH
+
1
];
// buffer to store user in utf8
char
db_buff
[
NAME_
LEN
+
1
];
// buffer to store db in utf8
char
user_buff
[
USERNAME_LENGTH
+
1
];
// buffer to store user in utf8
uint
dummy_errors
;
/*
...
...
@@ -1662,7 +1662,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
password. New clients send the size (1 byte) + string (not null
terminated, so also '\0' for empty string).
*/
char
db_buff
[
NAME_
BYTE_
LEN
+
1
];
// buffer to store db in utf8
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
);
...
...
@@ -7565,7 +7565,6 @@ LEX_USER *get_current_user(THD *thd, LEX_USER *user)
SYNOPSIS
check_string_length()
cs string charset
str string to be checked
err_msg error message to be displayed if the string is too long
max_length max length
...
...
@@ -7575,13 +7574,13 @@ LEX_USER *get_current_user(THD *thd, LEX_USER *user)
TRUE the passed string is longer than max_length
*/
bool
check_string_length
(
CHARSET_INFO
*
cs
,
LEX_STRING
*
str
,
const
char
*
err_msg
,
uint
max_length
)
bool
check_string_length
(
LEX_STRING
*
str
,
const
char
*
err_msg
,
uint
max_length
)
{
if
(
cs
->
cset
->
charpos
(
cs
,
str
->
str
,
str
->
str
+
str
->
length
,
max_length
)
>=
str
->
length
)
return
FALSE
;
if
(
str
->
length
<=
max_length
)
return
FALSE
;
my_error
(
ER_WRONG_STRING_LENGTH
,
MYF
(
0
),
str
->
str
,
err_msg
,
max_length
);
return
TRUE
;
}
sql/sql_repl.h
View file @
7c5c8999
...
...
@@ -22,7 +22,7 @@ typedef struct st_slave_info
uint32
server_id
;
uint32
rpl_recovery_rank
,
master_id
;
char
host
[
HOSTNAME_LENGTH
+
1
];
char
user
[
USERNAME_
BYTE_
LENGTH
+
1
];
char
user
[
USERNAME_LENGTH
+
1
];
char
password
[
MAX_PASSWORD_LENGTH
+
1
];
uint16
port
;
THD
*
thd
;
...
...
sql/sql_yacc.yy
View file @
7c5c8999
...
...
@@ -7523,7 +7523,7 @@ user:
$$->host.str= (char *) "%";
$$->host.length= 1;
if (check_string_length(
system_charset_info,
&$$->user,
if (check_string_length(&$$->user,
ER(ER_USERNAME), USERNAME_LENGTH))
YYABORT;
}
...
...
@@ -7534,9 +7534,9 @@ user:
YYABORT;
$$->user = $1; $$->host=$3;
if (check_string_length(
system_charset_info,
&$$->user,
if (check_string_length(&$$->user,
ER(ER_USERNAME), USERNAME_LENGTH) ||
check_string_length(&
my_charset_latin1, &
$$->host,
check_string_length(&$$->host,
ER(ER_HOSTNAME), HOSTNAME_LENGTH))
YYABORT;
}
...
...
sql/table.cc
View file @
7c5c8999
...
...
@@ -1592,7 +1592,7 @@ char *get_field(MEM_ROOT *mem, Field *field)
bool
check_db_name
(
char
*
name
)
{
uint
name_length
=
0
;
// name length in symbols
char
*
start
=
name
;
/* Used to catch empty names and names with end space */
bool
last_char_is_space
=
TRUE
;
...
...
@@ -1609,7 +1609,6 @@ bool check_db_name(char *name)
name
+
system_charset_info
->
mbmaxlen
);
if
(
len
)
{
name_length
++
;
name
+=
len
;
continue
;
}
...
...
@@ -1617,13 +1616,12 @@ bool check_db_name(char *name)
#else
last_char_is_space
=
*
name
==
' '
;
#endif
name_length
++
;
if
(
*
name
==
'/'
||
*
name
==
'\\'
||
*
name
==
FN_LIBCHAR
||
*
name
==
FN_EXTCHAR
)
return
1
;
name
++
;
}
return
(
last_char_is_space
||
name_length
>
NAME_LEN
)
;
return
last_char_is_space
||
(
uint
)
(
name
-
start
)
>
NAME_LEN
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment