mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
Bug #44792: valgrind warning when casting from time to time
Field_time::get_time() did not initialize some members of MYSQL_TIME which led to valgrind warnings when those members were accessed in Protocol_simple::store_time(). It is unlikely that this bug could result in wrong data being returned, since Field_time::get_time() initializes the 'day' member of MYSQL_TIME to 0, so the value of 'day' in Protocol_simple::store_time() would be 0 regardless of the values for 'year' and 'month'.
This commit is contained in:
parent
d5fd4d4204
commit
12f18228b4
3 changed files with 24 additions and 1 deletions
|
@ -128,3 +128,13 @@ SELECT sum(f3) FROM t1 where f2='2007-07-01 00:00:00' group by f2;
|
||||||
sum(f3)
|
sum(f3)
|
||||||
3
|
3
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# Bug #44792: valgrind warning when casting from time to time
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (c TIME);
|
||||||
|
INSERT INTO t1 VALUES ('0:00:00');
|
||||||
|
SELECT CAST(c AS TIME) FROM t1;
|
||||||
|
CAST(c AS TIME)
|
||||||
|
00:00:00
|
||||||
|
DROP TABLE t1;
|
||||||
|
End of 5.0 tests
|
||||||
|
|
|
@ -77,3 +77,16 @@ insert into t1 values('2007-07-02', 1);
|
||||||
insert into t1 values('2007-07-02', 2);
|
insert into t1 values('2007-07-02', 2);
|
||||||
SELECT sum(f3) FROM t1 where f2='2007-07-01 00:00:00' group by f2;
|
SELECT sum(f3) FROM t1 where f2='2007-07-01 00:00:00' group by f2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #44792: valgrind warning when casting from time to time
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (c TIME);
|
||||||
|
INSERT INTO t1 VALUES ('0:00:00');
|
||||||
|
SELECT CAST(c AS TIME) FROM t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
|
--echo End of 5.0 tests
|
||||||
|
|
|
@ -4877,7 +4877,7 @@ bool Field_time::get_time(MYSQL_TIME *ltime)
|
||||||
ltime->neg= 1;
|
ltime->neg= 1;
|
||||||
tmp=-tmp;
|
tmp=-tmp;
|
||||||
}
|
}
|
||||||
ltime->day= 0;
|
ltime->year= ltime->month= ltime->day= 0;
|
||||||
ltime->hour= (int) (tmp/10000);
|
ltime->hour= (int) (tmp/10000);
|
||||||
tmp-=ltime->hour*10000;
|
tmp-=ltime->hour*10000;
|
||||||
ltime->minute= (int) tmp/100;
|
ltime->minute= (int) tmp/100;
|
||||||
|
|
Loading…
Reference in a new issue