diff --git a/avro/maxavro.c b/avro/maxavro.c index c013a3b4e..8523ad307 100644 --- a/avro/maxavro.c +++ b/avro/maxavro.c @@ -246,12 +246,17 @@ bool maxavro_read_float(MAXAVRO_FILE* file, float *dest) { bool rval = false; - if (file->buffer_ptr + sizeof(*dest) < file->buffer_end) + if (file->buffer_ptr + sizeof(*dest) <= file->buffer_end) { memcpy(dest, file->buffer_ptr, sizeof(*dest)); file->buffer_ptr += sizeof(*dest); rval = true; } + else + { + ss_dassert(!true); + MXS_ERROR("Block cannot hold a value of type float"); + } return rval; } @@ -280,12 +285,17 @@ bool maxavro_read_double(MAXAVRO_FILE* file, double *dest) { bool rval = false; - if (file->buffer_ptr + sizeof(*dest) < file->buffer_end) + if (file->buffer_ptr + sizeof(*dest) <= file->buffer_end) { memcpy(dest, file->buffer_ptr, sizeof(*dest)); file->buffer_ptr += sizeof(*dest); rval = true; } + else + { + ss_dassert(!true); + MXS_ERROR("Block cannot hold a value of type double"); + } return rval; }