Commit 6650313b authored by unknown's avatar unknown

added NULLs check to the QUOTE() function

parent 596947c0
...@@ -2085,16 +2085,16 @@ String *Item_func_quote::val_str(String *str) ...@@ -2085,16 +2085,16 @@ String *Item_func_quote::val_str(String *str)
char *from, *to, *end; char *from, *to, *end;
uint delta= 2; /* for beginning and ending ' signs */ uint delta= 2; /* for beginning and ending ' signs */
if (!arg)
goto null;
for (from= (char*) arg->ptr(), end= from + arg->length(); from < end; from++) for (from= (char*) arg->ptr(), end= from + arg->length(); from < end; from++)
{ {
if (*(escmask + (*from >> 3)) and (1 << (*from & 7))) if (*(escmask + (*from >> 3)) and (1 << (*from & 7)))
delta++; delta++;
} }
if (str->alloc(arg->length() + delta)) if (str->alloc(arg->length() + delta))
{ goto null;
null_value= 1;
return 0;
}
to= (char*) str->ptr() + arg->length() + delta - 1; to= (char*) str->ptr() + arg->length() + delta - 1;
*to--= '\''; *to--= '\'';
for (end= (char*) arg->ptr(), from= end + arg->length() - 1; from >= end; for (end= (char*) arg->ptr(), from= end + arg->length() - 1; from >= end;
...@@ -2107,4 +2107,8 @@ String *Item_func_quote::val_str(String *str) ...@@ -2107,4 +2107,8 @@ String *Item_func_quote::val_str(String *str)
*to= '\''; *to= '\'';
str->length(arg->length() + delta); str->length(arg->length() + delta);
return str; return str;
null:
null_value= 1;
return 0;
} }
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