automerge 5.1-security --> 5.5-security (bug 55424)
This commit is contained in:
commit
ce5b12db7a
@ -296,4 +296,16 @@ CONVERT_TZ(NOW(), 'UTC', 'Europe/Moscow') IS NULL
|
|||||||
UPDATE t1 SET t = CONVERT_TZ(t, 'UTC', 'Europe/Moscow');
|
UPDATE t1 SET t = CONVERT_TZ(t, 'UTC', 'Europe/Moscow');
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# Bug #55424: convert_tz crashes when fed invalid data
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a SET('x') NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES ('');
|
||||||
|
SELECT CONVERT_TZ(1, a, 1) FROM t1;
|
||||||
|
CONVERT_TZ(1, a, 1)
|
||||||
|
NULL
|
||||||
|
SELECT CONVERT_TZ(1, 1, a) FROM t1;
|
||||||
|
CONVERT_TZ(1, 1, a)
|
||||||
|
NULL
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
@ -273,5 +273,14 @@ UNLOCK TABLES;
|
|||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #55424: convert_tz crashes when fed invalid data
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a SET('x') NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES ('');
|
||||||
|
SELECT CONVERT_TZ(1, a, 1) FROM t1;
|
||||||
|
SELECT CONVERT_TZ(1, 1, a) FROM t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo End of 5.1 tests
|
--echo End of 5.1 tests
|
||||||
|
@ -104,7 +104,7 @@ public:
|
|||||||
inline uint32 alloced_length() const { return Alloced_length;}
|
inline uint32 alloced_length() const { return Alloced_length;}
|
||||||
inline char& operator [] (uint32 i) const { return Ptr[i]; }
|
inline char& operator [] (uint32 i) const { return Ptr[i]; }
|
||||||
inline void length(uint32 len) { str_length=len ; }
|
inline void length(uint32 len) { str_length=len ; }
|
||||||
inline bool is_empty() { return (str_length == 0); }
|
inline bool is_empty() const { return (str_length == 0); }
|
||||||
inline void mark_as_const() { Alloced_length= 0;}
|
inline void mark_as_const() { Alloced_length= 0;}
|
||||||
inline const char *ptr() const { return Ptr; }
|
inline const char *ptr() const { return Ptr; }
|
||||||
inline char *c_ptr()
|
inline char *c_ptr()
|
||||||
|
@ -2300,7 +2300,7 @@ my_tz_find(THD *thd, const String *name)
|
|||||||
DBUG_PRINT("enter", ("time zone name='%s'",
|
DBUG_PRINT("enter", ("time zone name='%s'",
|
||||||
name ? ((String *)name)->c_ptr_safe() : "NULL"));
|
name ? ((String *)name)->c_ptr_safe() : "NULL"));
|
||||||
|
|
||||||
if (!name)
|
if (!name || name->is_empty())
|
||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
|
|
||||||
mysql_mutex_lock(&tz_LOCK);
|
mysql_mutex_lock(&tz_LOCK);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user