mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
BUG#14629727: USER_VAR_EVENT IS MISSING RANGE CHECKS
Merge from mysql-5.1 into mysql-5.5.
This commit is contained in:
@@ -151,6 +151,50 @@
|
||||
*/
|
||||
#define OPTION_ALLOW_BATCH (ULL(1) << 36) // THD, intern (slave)
|
||||
|
||||
/*
|
||||
Check how many bytes are available on buffer.
|
||||
|
||||
@param buf_start Pointer to buffer start.
|
||||
@param buf_current Pointer to the current position on buffer.
|
||||
@param buf_len Buffer length.
|
||||
|
||||
@return Number of bytes available on event buffer.
|
||||
*/
|
||||
template <class T> T available_buffer(const char* buf_start,
|
||||
const char* buf_current,
|
||||
T buf_len)
|
||||
{
|
||||
return buf_len - (buf_current - buf_start);
|
||||
}
|
||||
/* Explicit instantion to unsigned int. */
|
||||
template unsigned int available_buffer<unsigned int>(const char*,
|
||||
const char*,
|
||||
unsigned int);
|
||||
|
||||
/*
|
||||
Check if jump value is within buffer limits.
|
||||
|
||||
@param jump Number of positions we want to advance.
|
||||
@param buf_start Pointer to buffer start
|
||||
@param buf_current Pointer to the current position on buffer.
|
||||
@param buf_len Buffer length.
|
||||
|
||||
@return True If jump value is within buffer limits.
|
||||
False Otherwise.
|
||||
*/
|
||||
template <class T> bool valid_buffer_range(T jump,
|
||||
const char* buf_start,
|
||||
const char* buf_current,
|
||||
T buf_len)
|
||||
{
|
||||
return (jump <= available_buffer(buf_start, buf_current, buf_len));
|
||||
}
|
||||
/* Explicit instantion to unsigned int. */
|
||||
template bool valid_buffer_range<unsigned int>(unsigned int,
|
||||
const char*,
|
||||
const char*,
|
||||
unsigned int);
|
||||
|
||||
/* The rest of the file is included in the server only */
|
||||
#ifndef MYSQL_CLIENT
|
||||
|
||||
|
||||
Reference in New Issue
Block a user