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
988ce580
Commit
988ce580
authored
Mar 20, 2007
by
iggy@recycle.(none)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug#23736 Pointer free error in mysqlbinlog
- Mis-matched SAFEMALLOC defines caused misleading error message.
parent
9a5f0bff
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
33 deletions
+28
-33
client/mysqlbinlog.cc
client/mysqlbinlog.cc
+13
-14
include/my_sys.h
include/my_sys.h
+9
-8
mysys/array.c
mysys/array.c
+0
-4
mysys/mf_tempdir.c
mysys/mf_tempdir.c
+6
-7
No files found.
client/mysqlbinlog.cc
View file @
988ce580
...
...
@@ -155,11 +155,7 @@ class Load_log_processor
public:
Load_log_processor
()
{}
~
Load_log_processor
()
{
destroy
();
delete_dynamic
(
&
file_names
);
}
~
Load_log_processor
()
{}
int
init
()
{
...
...
@@ -182,7 +178,7 @@ class Load_log_processor
{
File_name_record
*
ptr
=
(
File_name_record
*
)
file_names
.
buffer
;
File_name_record
*
end
=
ptr
+
file_names
.
elements
;
for
(;
ptr
<
end
;
ptr
++
)
for
(;
ptr
<
end
;
ptr
++
)
{
if
(
ptr
->
fname
)
{
...
...
@@ -191,6 +187,8 @@ class Load_log_processor
bzero
((
char
*
)
ptr
,
sizeof
(
File_name_record
));
}
}
delete_dynamic
(
&
file_names
);
}
/*
...
...
@@ -1517,6 +1515,7 @@ int main(int argc, char** argv)
cleanup
();
free_defaults
(
defaults_argv
);
my_free_open_file_info
();
load_processor
.
destroy
();
/* We cannot free DBUG, it is used in global destructors after exit(). */
my_end
(
MY_DONT_FREE_DBUG
);
exit
(
exit_value
);
...
...
include/my_sys.h
View file @
988ce580
...
...
@@ -322,8 +322,17 @@ struct st_my_file_info
extern
struct
st_my_file_info
*
my_file_info
;
typedef
struct
st_dynamic_array
{
char
*
buffer
;
uint
elements
,
max_element
;
uint
alloc_increment
;
uint
size_of_element
;
}
DYNAMIC_ARRAY
;
typedef
struct
st_my_tmpdir
{
DYNAMIC_ARRAY
full_list
;
char
**
list
;
uint
cur
,
max
;
#ifdef THREAD
...
...
@@ -331,14 +340,6 @@ typedef struct st_my_tmpdir
#endif
}
MY_TMPDIR
;
typedef
struct
st_dynamic_array
{
char
*
buffer
;
uint
elements
,
max_element
;
uint
alloc_increment
;
uint
size_of_element
;
}
DYNAMIC_ARRAY
;
typedef
struct
st_dynamic_string
{
char
*
str
;
...
...
mysys/array.c
View file @
988ce580
...
...
@@ -15,10 +15,6 @@
/* Handling of arrays that can grow dynamicly. */
#if defined(WIN32) || defined(__WIN__)
#undef SAFEMALLOC
/* Problems with threads */
#endif
#include "mysys_priv.h"
#include "m_string.h"
...
...
mysys/mf_tempdir.c
View file @
988ce580
...
...
@@ -26,9 +26,8 @@ my_bool init_tmpdir(MY_TMPDIR *tmpdir, const char *pathlist)
{
char
*
end
,
*
copy
;
char
buff
[
FN_REFLEN
];
DYNAMIC_ARRAY
t_arr
;
pthread_mutex_init
(
&
tmpdir
->
mutex
,
MY_MUTEX_INIT_FAST
);
if
(
my_init_dynamic_array
(
&
t
_arr
,
sizeof
(
char
*
),
1
,
5
))
if
(
my_init_dynamic_array
(
&
t
mpdir
->
full_list
,
sizeof
(
char
*
),
1
,
5
))
return
TRUE
;
if
(
!
pathlist
||
!
pathlist
[
0
])
{
...
...
@@ -49,14 +48,14 @@ my_bool init_tmpdir(MY_TMPDIR *tmpdir, const char *pathlist)
convert_dirname
(
buff
,
pathlist
,
end
);
if
(
!
(
copy
=
my_strdup
(
buff
,
MYF
(
MY_WME
))))
return
TRUE
;
if
(
insert_dynamic
(
&
t
_arr
,
(
gptr
)
&
copy
))
if
(
insert_dynamic
(
&
t
mpdir
->
full_list
,
(
gptr
)
&
copy
))
return
TRUE
;
pathlist
=
end
+
1
;
}
while
(
*
end
);
freeze_size
(
&
t
_arr
);
tmpdir
->
list
=
(
char
**
)
t
_arr
.
buffer
;
tmpdir
->
max
=
t
_arr
.
elements
-
1
;
freeze_size
(
&
t
mpdir
->
full_list
);
tmpdir
->
list
=
(
char
**
)
t
mpdir
->
full_list
.
buffer
;
tmpdir
->
max
=
t
mpdir
->
full_list
.
elements
-
1
;
tmpdir
->
cur
=
0
;
return
FALSE
;
}
...
...
@@ -76,7 +75,7 @@ void free_tmpdir(MY_TMPDIR *tmpdir)
uint
i
;
for
(
i
=
0
;
i
<=
tmpdir
->
max
;
i
++
)
my_free
(
tmpdir
->
list
[
i
],
MYF
(
0
));
my_free
((
gptr
)
tmpdir
->
list
,
MYF
(
0
)
);
delete_dynamic
(
&
tmpdir
->
full_list
);
pthread_mutex_destroy
(
&
tmpdir
->
mutex
);
}
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