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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
5cc756f6
Commit
5cc756f6
authored
Nov 12, 2004
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0
into gw.mysql.r18.ru:/usr/home/ram/work/4.0.b6564
parents
baf1c89e
b19eb67f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
77 additions
and
31 deletions
+77
-31
mysql-test/r/grant.result
mysql-test/r/grant.result
+6
-0
mysql-test/t/grant.test
mysql-test/t/grant.test
+9
-0
mysys/default.c
mysys/default.c
+60
-30
sql/sql_acl.cc
sql/sql_acl.cc
+2
-1
No files found.
mysql-test/r/grant.result
View file @
5cc756f6
...
...
@@ -150,3 +150,9 @@ GRANT SELECT ON `ab%`.* TO 'test11'@'localhost'
GRANT SELECT ON `a%`.* TO 'test11'@'localhost'
delete from mysql.user where user='test11';
delete from mysql.db where user='test11';
create database db6123;
grant usage on db6123.* to test6123 identified by 'magic123';
select host,db,user,select_priv,insert_priv from mysql.db where db="db6123";
host db user select_priv insert_priv
delete from mysql.user where user='test6123';
drop database db6123;
mysql-test/t/grant.test
View file @
5cc756f6
...
...
@@ -105,3 +105,12 @@ flush privileges;
show grants for test11@localhost;
delete from mysql.user where user='
test11
';
delete from mysql.db where user='
test11
';
#
# Bug#6123: GRANT USAGE inserts useless Db row
#
create database db6123;
grant usage on db6123.* to test6123 identified by '
magic123
';
select host,db,user,select_priv,insert_priv from mysql.db where db="db6123";
delete from mysql.user where user='
test6123
'
;
drop
database
db6123
;
mysys/default.c
View file @
5cc756f6
...
...
@@ -68,7 +68,12 @@ static const char *f_extensions[]= { ".cnf", 0 };
static
int
search_default_file
(
DYNAMIC_ARRAY
*
args
,
MEM_ROOT
*
alloc
,
const
char
*
dir
,
const
char
*
config_file
,
const
char
*
ext
,
TYPELIB
*
group
);
TYPELIB
*
group
);
static
int
search_default_file_with_ext
(
DYNAMIC_ARRAY
*
args
,
MEM_ROOT
*
alloc
,
const
char
*
dir
,
const
char
*
ext
,
const
char
*
config_file
,
TYPELIB
*
group
);
static
char
*
remove_end_comment
(
char
*
ptr
);
...
...
@@ -164,15 +169,16 @@ int load_defaults(const char *conf_file, const char **groups,
goto
err
;
if
(
forced_default_file
)
{
if
((
error
=
search_default_file
(
&
args
,
&
alloc
,
""
,
forced_default_file
,
""
,
&
group
))
<
0
)
if
((
error
=
search_default_file_with_ext
(
&
args
,
&
alloc
,
""
,
""
,
forced_default_file
,
&
group
))
<
0
)
goto
err
;
}
else
if
(
dirname_length
(
conf_file
))
{
for
(
ext
=
(
char
**
)
f_extensions
;
*
ext
;
*
ext
++
)
if
((
error
=
search_default_file
(
&
args
,
&
alloc
,
NullS
,
conf_file
,
*
ext
,
&
group
))
<
0
)
&
group
))
<
0
)
goto
err
;
}
else
...
...
@@ -180,33 +186,31 @@ int load_defaults(const char *conf_file, const char **groups,
#ifdef __WIN__
char
system_dir
[
FN_REFLEN
];
GetWindowsDirectory
(
system_dir
,
sizeof
(
system_dir
));
for
(
ext
=
(
char
**
)
f_extensions
;
*
ext
;
*
ext
++
)
if
((
search_default_file
(
&
args
,
&
alloc
,
system_dir
,
conf_file
,
*
ext
,
&
group
)))
goto
err
;
if
((
search_default_file
(
&
args
,
&
alloc
,
system_dir
,
conf_file
,
&
group
)))
goto
err
;
#endif
#if defined(__EMX__) || defined(OS2)
for
(
ext
=
(
char
**
)
f_extensions
;
*
ext
;
*
ext
++
)
if
(
getenv
(
"ETC"
)
&&
(
search_default_file
(
&
args
,
&
alloc
,
getenv
(
"ETC"
),
conf_file
,
*
ext
,
&
group
))
<
0
)
goto
err
;
{
const
char
*
etc
;
if
((
etc
=
getenv
(
"ETC"
))
&&
(
search_default_file
(
&
args
,
&
alloc
,
etc
,
conf_file
,
&
group
))
<
0
)
goto
err
;
}
#endif
for
(
dirs
=
default_directories
;
*
dirs
;
dirs
++
)
{
if
(
**
dirs
)
{
for
(
ext
=
(
char
**
)
f_extensions
;
*
ext
;
*
ext
++
)
if
(
search_default_file
(
&
args
,
&
alloc
,
*
dirs
,
conf_file
,
*
ext
,
&
group
)
<
0
)
goto
err
;
if
(
search_default_file
(
&
args
,
&
alloc
,
*
dirs
,
conf_file
,
&
group
)
<
0
)
goto
err
;
}
else
if
(
defaults_extra_file
)
{
for
(
ext
=
(
char
**
)
f_extensions
;
*
ext
;
*
ext
++
)
if
(
search_default_file
(
&
args
,
&
alloc
,
NullS
,
defaults_extra_file
,
*
ext
,
&
group
)
<
0
)
goto
err
;
/* Fatal error */
if
(
search_default_file
(
&
args
,
&
alloc
,
NullS
,
defaults_extra_file
,
&
group
)
<
0
)
goto
err
;
/* Fatal error */
}
}
}
...
...
@@ -267,11 +271,28 @@ void free_defaults(char **argv)
}
static
int
search_default_file
(
DYNAMIC_ARRAY
*
args
,
MEM_ROOT
*
alloc
,
const
char
*
dir
,
const
char
*
config_file
,
TYPELIB
*
group
)
{
char
**
ext
;
for
(
ext
=
(
char
**
)
f_extensions
;
*
ext
;
*
ext
++
)
{
int
error
;
if
((
error
=
search_default_file_with_ext
(
args
,
alloc
,
dir
,
*
ext
,
config_file
,
group
))
<
0
)
return
error
;
}
return
0
;
}
/*
Open a configuration file (if exists) and read given options from it
SYNOPSIS
search_default_file()
search_default_file
_with_ext
()
args Store pointer to found options here
alloc Allocate strings in this object
dir directory to read
...
...
@@ -286,9 +307,10 @@ void free_defaults(char **argv)
2 File is not a regular file (Warning)
*/
static
int
search_default_file
(
DYNAMIC_ARRAY
*
args
,
MEM_ROOT
*
alloc
,
const
char
*
dir
,
const
char
*
config_file
,
const
char
*
ext
,
TYPELIB
*
group
)
static
int
search_default_file_with_ext
(
DYNAMIC_ARRAY
*
args
,
MEM_ROOT
*
alloc
,
const
char
*
dir
,
const
char
*
ext
,
const
char
*
config_file
,
TYPELIB
*
group
)
{
char
name
[
FN_REFLEN
+
10
],
buff
[
4096
],
*
ptr
,
*
end
,
*
value
,
*
tmp
;
FILE
*
fp
;
...
...
@@ -482,7 +504,7 @@ static char *remove_end_comment(char *ptr)
void
print_defaults
(
const
char
*
conf_file
,
const
char
**
groups
)
{
#ifdef __WIN__
bool
have_ext
=
fn_ext
(
conf_file
)[
0
]
!=
0
;
my_bool
have_ext
=
fn_ext
(
conf_file
)[
0
]
!=
0
;
#endif
char
name
[
FN_REFLEN
],
**
ext
;
const
char
**
dirs
;
...
...
@@ -495,16 +517,24 @@ void print_defaults(const char *conf_file, const char **groups)
{
#ifdef __WIN__
GetWindowsDirectory
(
name
,
sizeof
(
name
));
if
(
have_ext
)
if
(
!
have_ext
)
{
for
(
ext
=
(
char
**
)
f_extensions
;
*
ext
;
*
ext
++
)
printf
(
"%s
\\
%s%s "
,
name
,
conf_file
,
*
ext
);
}
else
printf
(
"%s
\\
%s "
,
name
,
conf_file
);
#endif
#if defined(__EMX__) || defined(OS2)
for
(
ext
=
(
char
**
)
f_extensions
;
*
ext
;
*
ext
++
)
if
(
getenv
(
"ETC"
))
printf
(
"%s
\\
%s%s "
,
getenv
(
"ETC"
),
conf_file
,
*
ext
);
{
const
char
*
etc
;
if
((
etc
=
getenv
(
"ETC"
)))
{
for
(
ext
=
(
char
**
)
f_extensions
;
*
ext
;
*
ext
++
)
printf
(
"%s
\\
%s%s "
,
etc
,
conf_file
,
*
ext
);
}
}
#endif
for
(
dirs
=
default_directories
;
*
dirs
;
dirs
++
)
{
...
...
sql/sql_acl.cc
View file @
5cc756f6
...
...
@@ -1587,7 +1587,7 @@ static int replace_db_table(TABLE *table, const char *db,
goto
table_error
;
/* purecov: deadcode */
}
}
else
if
((
error
=
table
->
file
->
write_row
(
table
->
record
[
0
])))
else
if
(
rights
&&
(
error
=
table
->
file
->
write_row
(
table
->
record
[
0
])))
{
if
(
error
&&
error
!=
HA_ERR_FOUND_DUPP_KEY
)
/* purecov: inspected */
goto
table_error
;
/* purecov: deadcode */
...
...
@@ -1597,6 +1597,7 @@ static int replace_db_table(TABLE *table, const char *db,
if
(
old_row_exists
)
acl_update_db
(
combo
.
user
.
str
,
combo
.
host
.
str
,
db
,
rights
);
else
if
(
rights
)
acl_insert_db
(
combo
.
user
.
str
,
combo
.
host
.
str
,
db
,
rights
);
table
->
file
->
index_end
();
DBUG_RETURN
(
0
);
...
...
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