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
780a3dae
Commit
780a3dae
authored
Jun 12, 2007
by
kaa@polly.local
Browse files
Options
Browse Files
Download
Plain Diff
Merge polly.local:/home/kaa/src/maint/bug28895/my50-bug28895
into polly.local:/home/kaa/src/maint/mysql-5.0-maint
parents
f0dd5d9c
0f5a1e59
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
28 additions
and
8 deletions
+28
-8
mysql-test/r/long_tmpdir.result
mysql-test/r/long_tmpdir.result
+3
-0
mysql-test/t/long_tmpdir-master.opt
mysql-test/t/long_tmpdir-master.opt
+1
-0
mysql-test/t/long_tmpdir-master.sh
mysql-test/t/long_tmpdir-master.sh
+3
-0
mysql-test/t/long_tmpdir.test
mysql-test/t/long_tmpdir.test
+9
-0
sql/sql_select.cc
sql/sql_select.cc
+12
-8
No files found.
mysql-test/r/long_tmpdir.result
0 → 100644
View file @
780a3dae
create view v1 as select table_name from information_schema.tables;
drop view v1;
End of 5.0 tests
mysql-test/t/long_tmpdir-master.opt
0 → 100644
View file @
780a3dae
--tmpdir=$MYSQLTEST_VARDIR/tmp/long_temporary_directory_path_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789
mysql-test/t/long_tmpdir-master.sh
0 → 100644
View file @
780a3dae
d
=
"
$MYSQLTEST_VARDIR
/tmp/long_temporary_directory_path_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789"
test
-d
"
$d
"
||
mkdir
"
$d
"
rm
-f
"
$d
"
/
*
mysql-test/t/long_tmpdir.test
0 → 100644
View file @
780a3dae
#
# Bug #29015: Stack overflow in processing temporary table name when tmpdir path
# is long
#
create
view
v1
as
select
table_name
from
information_schema
.
tables
;
drop
view
v1
;
--
echo
End
of
5.0
tests
sql/sql_select.cc
View file @
780a3dae
...
...
@@ -9164,7 +9164,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
bool
using_unique_constraint
=
0
;
bool
use_packed_rows
=
0
;
bool
not_all_columns
=
!
(
select_options
&
TMP_TABLE_ALL_COLUMNS
);
char
*
tmpname
,
path
[
FN_REFLEN
];
char
*
tmpname
,
*
tmppath
,
path
[
FN_REFLEN
],
table_name
[
NAME_LEN
+
1
];
byte
*
pos
,
*
group_buff
;
uchar
*
null_flags
;
Field
**
reg_field
,
**
from_field
,
**
default_field
;
...
...
@@ -9187,12 +9187,12 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
temp_pool_slot
=
bitmap_set_next
(
&
temp_pool
);
if
(
temp_pool_slot
!=
MY_BIT_NONE
)
// we got a slot
sprintf
(
path
,
"%s_%lx_%i"
,
tmp_file_prefix
,
current_pid
,
temp_pool_slot
);
sprintf
(
table_name
,
"%s_%lx_%i"
,
tmp_file_prefix
,
current_pid
,
temp_pool_slot
);
else
{
/* if we run out of slots or we are not using tempool */
sprintf
(
path
,
"%s%lx_%lx_%x"
,
tmp_file_prefix
,
current_pid
,
sprintf
(
table_name
,
"%s%lx_%lx_%x"
,
tmp_file_prefix
,
current_pid
,
thd
->
thread_id
,
thd
->
tmp_table
++
);
}
...
...
@@ -9200,7 +9200,8 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
No need to change table name to lower case as we are only creating
MyISAM or HEAP tables here
*/
fn_format
(
path
,
path
,
mysql_tmpdir
,
""
,
MY_REPLACE_EXT
|
MY_UNPACK_FILENAME
);
fn_format
(
path
,
table_name
,
mysql_tmpdir
,
""
,
MY_REPLACE_EXT
|
MY_UNPACK_FILENAME
);
if
(
group
)
{
...
...
@@ -9245,7 +9246,8 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
sizeof
(
*
key_part_info
)
*
(
param
->
group_parts
+
1
),
&
param
->
start_recinfo
,
sizeof
(
*
param
->
recinfo
)
*
(
field_count
*
2
+
4
),
&
tmpname
,
(
uint
)
strlen
(
path
)
+
1
,
&
tmppath
,
(
uint
)
strlen
(
path
)
+
1
,
&
tmpname
,
(
uint
)
strlen
(
table_name
)
+
1
,
&
group_buff
,
group
&&
!
using_unique_constraint
?
param
->
group_length
:
0
,
NullS
))
...
...
@@ -9263,7 +9265,8 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
DBUG_RETURN
(
NULL
);
/* purecov: inspected */
}
param
->
items_to_copy
=
copy_func
;
strmov
(
tmpname
,
path
);
strmov
(
tmppath
,
path
);
strmov
(
tmpname
,
table_name
);
/* make table according to fields */
bzero
((
char
*
)
table
,
sizeof
(
*
table
));
...
...
@@ -9289,7 +9292,8 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
table
->
s
=
&
table
->
share_not_to_be_used
;
table
->
s
->
blob_field
=
blob_field
;
table
->
s
->
table_name
=
table
->
s
->
path
=
tmpname
;
table
->
s
->
table_name
=
tmpname
;
table
->
s
->
path
=
tmppath
;
table
->
s
->
db
=
""
;
table
->
s
->
blob_ptr_size
=
mi_portable_sizeof_char_ptr
;
table
->
s
->
tmp_table
=
NON_TRANSACTIONAL_TMP_TABLE
;
...
...
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