diff options
author | unknown <gkodinov/kgeorge@magare.gmz> | 2007-03-02 12:14:50 +0200 |
---|---|---|
committer | unknown <gkodinov/kgeorge@magare.gmz> | 2007-03-02 12:14:50 +0200 |
commit | 399bf23c1d9b5666c29bca6779e4459ed8fdbc4d (patch) | |
tree | 5ad96de4d1308f8e66de478889fd2215aa0c3f8b /sql/item_strfunc.h | |
parent | 3a520a785eeee973e79d1f6e482e270e24a20c56 (diff) | |
download | mariadb-git-399bf23c1d9b5666c29bca6779e4459ed8fdbc4d.tar.gz |
Bug #26537: item_unhex() was not expected
to return NULL for non-NULL arguments.
This is not the case as it can return NULL
for invalid hexidecimal strings.
Fixed by setting the maybe_null flag.
mysql-test/r/func_str.result:
Bug #26537: test case
mysql-test/t/func_str.test:
Bug #26537: test case
sql/item_strfunc.h:
Bug #26537: item_unhex() can return NULLs
even for guaranteed non-null arguments.
Diffstat (limited to 'sql/item_strfunc.h')
-rw-r--r-- | sql/item_strfunc.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h index 60547d00a5c..778ea6e9496 100644 --- a/sql/item_strfunc.h +++ b/sql/item_strfunc.h @@ -605,7 +605,11 @@ class Item_func_unhex :public Item_str_func { String tmp_value; public: - Item_func_unhex(Item *a) :Item_str_func(a) {} + Item_func_unhex(Item *a) :Item_str_func(a) + { + /* there can be bad hex strings */ + maybe_null= 1; + } const char *func_name() const { return "unhex"; } String *val_str(String *); void fix_length_and_dec() |