Commit f08076f6 authored by Andrei Elkin's avatar Andrei Elkin

Bug #52304 valgrind does not like to print un-inited string in Protocol_text::store()

The reason of the failure was apparent flaw in that a pointer to an uninitialized buffer was
passed to DBUG_PRINT of Protocol_text::store().

Fixed with splitting the print-out into two branches: 
one with length zero of the problematic arg and the rest.


sql/protocol.cc:
  correcting DBUG_PRINT to print out `from' with a care because one may be uninitialized in the caller.
parent 19d0bb94
...@@ -850,7 +850,7 @@ bool Protocol_text::store(const char *from, size_t length, ...@@ -850,7 +850,7 @@ bool Protocol_text::store(const char *from, size_t length,
CHARSET_INFO *tocs= this->thd->variables.character_set_results; CHARSET_INFO *tocs= this->thd->variables.character_set_results;
#ifndef DBUG_OFF #ifndef DBUG_OFF
DBUG_PRINT("info", ("Protocol_text::store field %u (%u): %s", field_pos, DBUG_PRINT("info", ("Protocol_text::store field %u (%u): %s", field_pos,
field_count, from)); field_count, (length == 0? "" : from)));
DBUG_ASSERT(field_pos < field_count); DBUG_ASSERT(field_pos < field_count);
DBUG_ASSERT(field_types == 0 || DBUG_ASSERT(field_types == 0 ||
field_types[field_pos] == MYSQL_TYPE_DECIMAL || field_types[field_pos] == MYSQL_TYPE_DECIMAL ||
......
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