From: Oystein Grovlen Date: October 20 2010 11:34am Subject: bzr commit into mysql-5.5 branch (oystein.grovlen:3089) Bug#57512 List-Archive: http://lists.mysql.com/commits/121297 X-Bug: 57512 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0270997979==" --===============0270997979== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/og136792/mysql/mysql-5.5/ based on revid:alexander.nozdrin@stripped 3089 Oystein Grovlen 2010-10-20 Bug#57512 str_to_date crash... str_to_date function should only try to generate a warning for invalid input strings, not when input value is NULL. In latter case, val_str() of input argument will return a nil pointer. Trying to generate a warning using this pointer lead to a segmentation fault. Solution: Only generate warning when pointer to input string is non-nil. @ mysql-test/r/func_time.result Added test case for Bug#57512 @ mysql-test/t/func_time.test Added test case for Bug#57512 @ sql/item_timefunc.cc Skip generating warning when pointer to input string is nil since this implies that input argument was NULL. modified: mysql-test/r/func_time.result mysql-test/t/func_time.test sql/item_timefunc.cc === modified file 'mysql-test/r/func_time.result' --- a/mysql-test/r/func_time.result 2010-09-09 12:02:02 +0000 +++ b/mysql-test/r/func_time.result 2010-10-20 11:34:00 +0000 @@ -1316,3 +1316,12 @@ SELECT 1 FROM t1 ORDER BY @x:=makedate(a 1 DROP TABLE t1; End of 5.1 tests +# +# Bug#57512 str_to_date crash... +# +select week(str_to_date(null,0)); +week(str_to_date(null,0)) +NULL +select subdate(str_to_date(null,0),interval 1 hour); +subdate(str_to_date(null,0),interval 1 hour) +NULL === modified file 'mysql-test/t/func_time.test' --- a/mysql-test/t/func_time.test 2010-08-16 07:11:57 +0000 +++ b/mysql-test/t/func_time.test 2010-10-20 11:34:00 +0000 @@ -833,3 +833,11 @@ SELECT 1 FROM t1 ORDER BY @x:=makedate(a DROP TABLE t1; --echo End of 5.1 tests + +--echo # +--echo # Bug#57512 str_to_date crash... +--echo # + +select week(str_to_date(null,0)); +select subdate(str_to_date(null,0),interval 1 hour); + === modified file 'sql/item_timefunc.cc' --- a/sql/item_timefunc.cc 2010-09-07 06:45:00 +0000 +++ b/sql/item_timefunc.cc 2010-10-20 11:34:00 +0000 @@ -3435,7 +3435,7 @@ bool Item_func_str_to_date::get_date(MYS return 0; null_date: - if (fuzzy_date & TIME_NO_ZERO_DATE) + if (val && (fuzzy_date & TIME_NO_ZERO_DATE)) { char buff[128]; strmake(buff, val->ptr(), min(val->length(), sizeof(buff)-1)); --===============0270997979== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/oystein.grovlen@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: oystein.grovlen@stripped\ # s73mfr2cbxhbtqsx # target_branch: file:///home/og136792/mysql/mysql-5.5/ # testament_sha1: 801dda101fb31e08014852dc376173348545e860 # timestamp: 2010-10-20 13:34:18 +0200 # base_revision_id: alexander.nozdrin@stripped\ # 590ka2tuit9qoxbb # # Begin bundle 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 /xdyRThQkBje98k= --===============0270997979==--