Bug#34726: open_tables() crashes server if running with --debug

The DBUG code emits the current value of the proc_info member of THD,
which may be set to NULL.  It was wrong to dereference that value
with the format string %s without verifying that it was valid.

Now, insert an inline test that substitutes the string "(null)" for
NULL pointers.
parent 159bc5c7
...@@ -253,7 +253,8 @@ const char *set_thd_proc_info(THD *thd, const char *info, ...@@ -253,7 +253,8 @@ const char *set_thd_proc_info(THD *thd, const char *info,
const unsigned int calling_line) const unsigned int calling_line)
{ {
const char *old_info= thd->proc_info; const char *old_info= thd->proc_info;
DBUG_PRINT("proc_info", ("%s:%d %s", calling_file, calling_line, info)); DBUG_PRINT("proc_info", ("%s:%d %s", calling_file, calling_line,
(info != NULL) ? info : "(null)"));
#if defined(ENABLED_PROFILING) && defined(COMMUNITY_SERVER) #if defined(ENABLED_PROFILING) && defined(COMMUNITY_SERVER)
thd->profiling.status_change(info, calling_function, calling_file, calling_line); thd->profiling.status_change(info, calling_function, calling_file, calling_line);
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment