diff options
Diffstat (limited to 'sql/sql_string.cc')
-rw-r--r-- | sql/sql_string.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sql/sql_string.cc b/sql/sql_string.cc index 94f2e6fc8c6..f2a0f55aec8 100644 --- a/sql/sql_string.cc +++ b/sql/sql_string.cc @@ -237,8 +237,8 @@ bool Binary_string::copy(const Binary_string &str) { if (alloc(str.str_length)) return TRUE; - str_length=str.str_length; - bmove(Ptr,str.Ptr,str_length); // May be overlapping + if ((str_length=str.str_length)) + bmove(Ptr,str.Ptr,str_length); // May be overlapping Ptr[str_length]=0; return FALSE; } @@ -574,8 +574,11 @@ bool Binary_string::append_ulonglong(ulonglong val) bool String::append(const char *s, size_t arg_length, CHARSET_INFO *cs) { + if (!arg_length) + return false; + uint32 offset; - + if (needs_conversion((uint32)arg_length, cs, charset(), &offset)) { size_t add_length; |