diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2018-04-24 09:26:40 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2018-04-24 09:26:40 +0300 |
commit | 9c34a4124d67d9e3f70837eaeb11290f35e8f8d0 (patch) | |
tree | 1adb4d44b9b7e7cf20e63e3ebc95ba05f7dc47e9 /sql/log_event_old.cc | |
parent | 5b79303b40e31d77f616c2b797f58de41973e6a3 (diff) | |
parent | c7bb33724826dab53831b74bc0cf7ec311eb13f0 (diff) | |
download | mariadb-git-9c34a4124d67d9e3f70837eaeb11290f35e8f8d0.tar.gz |
Merge 10.0 into 10.1
Diffstat (limited to 'sql/log_event_old.cc')
-rw-r--r-- | sql/log_event_old.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sql/log_event_old.cc b/sql/log_event_old.cc index abd489773f6..d2b4470bbf9 100644 --- a/sql/log_event_old.cc +++ b/sql/log_event_old.cc @@ -1,4 +1,5 @@ -/* Copyright (c) 2007, 2016, Oracle and/or its affiliates. +/* Copyright (c) 2007, 2018, Oracle and/or its affiliates. + Copyright (c) 2009, 2018, MariaDB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1231,6 +1232,13 @@ Old_rows_log_event::Old_rows_log_event(const char *buf, uint event_len, DBUG_PRINT("debug", ("Reading from %p", ptr_after_width)); m_width = net_field_length(&ptr_after_width); DBUG_PRINT("debug", ("m_width=%lu", m_width)); + /* Avoid reading out of buffer */ + if (ptr_after_width + m_width > (uchar *)buf + event_len) + { + m_cols.bitmap= NULL; + DBUG_VOID_RETURN; + } + /* if my_bitmap_init fails, catched in is_valid() */ if (likely(!my_bitmap_init(&m_cols, m_width <= sizeof(m_bitbuf)*8 ? m_bitbuf : NULL, |