summaryrefslogtreecommitdiff
path: root/mysql-test/r/udf.result
diff options
context:
space:
mode:
authorunknown <gkodinov/kgeorge@macbook.gmz>2007-01-18 17:33:38 +0200
committerunknown <gkodinov/kgeorge@macbook.gmz>2007-01-18 17:33:38 +0200
commit4ced38b89bd5bedb75c5f4188ac9e8dbe7085e2e (patch)
treea3312b7470ba390a46ec5bddea072cd25b11f8f8 /mysql-test/r/udf.result
parent6746efb123ba5ae104e849c40e7bf85cb9ca7ef8 (diff)
downloadmariadb-git-4ced38b89bd5bedb75c5f4188ac9e8dbe7085e2e.tar.gz
Bug #25382: Passing NULL to an UDF called from stored procedures
crashes server Check for null value is reliable only after calling some of the val_xxx() methods. If the val_xxx() method is not called the null_value flag will be set only for certain types of NULL values (like SQL constant NULLs for example). This caused a crash while trying to dereference a NULL pointer that is returned by val_str() for NULL values. Fixed by swapping the order of val_xxx() and null_value check. mysql-test/r/udf.result: Bug #25382: Passing NULL to an UDF called from stored procedures crashes server - test case mysql-test/t/udf.test: Bug #25382: Passing NULL to an UDF called from stored procedures crashes server - test case sql/item_func.cc: Bug #25382: Passing NULL to an UDF called from stored procedures crashes server - reliably check null_value
Diffstat (limited to 'mysql-test/r/udf.result')
-rw-r--r--mysql-test/r/udf.result34
1 files changed, 34 insertions, 0 deletions
diff --git a/mysql-test/r/udf.result b/mysql-test/r/udf.result
index 64b7111bbc8..d5f59247084 100644
--- a/mysql-test/r/udf.result
+++ b/mysql-test/r/udf.result
@@ -240,3 +240,37 @@ drop table bug18761;
select is_const((1,2,3));
ERROR 21000: Operand should contain 1 column(s)
drop function if exists is_const;
+CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
+CREATE FUNCTION myfunc_double RETURNS REAL SONAME "UDF_EXAMPLE_LIB";
+CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "UDF_EXAMPLE_LIB";
+create function f1(p1 varchar(255))
+returns varchar(255)
+begin
+return metaphon(p1);
+end//
+create function f2(p1 varchar(255))
+returns double
+begin
+return myfunc_double(p1);
+end//
+create function f3(p1 varchar(255))
+returns double
+begin
+return myfunc_int(p1);
+end//
+select f3(NULL);
+f3(NULL)
+0
+select f2(NULL);
+f2(NULL)
+NULL
+select f1(NULL);
+f1(NULL)
+NULL
+drop function f1;
+drop function f2;
+drop function f3;
+drop function metaphon;
+drop function myfunc_double;
+drop function myfunc_int;
+End of 5.0 tests.