From f11d425a15e53d4b206146a9d52f5be324247826 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 9 Oct 2019 09:16:40 +0300 Subject: [PATCH] MDEV-20591: Follow-up fix calc_field_event_length(): For type=MYSQL_TYPE_BLOB and meta==0, return 0 instead of *ptr+1. This was noted by -Wimplicit-fallthrough. --- sql/log_event.cc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/sql/log_event.cc b/sql/log_event.cc index 369e9229d03..15523ba0c36 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -3423,16 +3423,18 @@ static size_t calc_field_event_length(const uchar *ptr, uint type, uint meta) case MYSQL_TYPE_SET: return meta & 0xFF; case MYSQL_TYPE_BLOB: - if (meta > 4 ) + switch (meta) { + default: return 0; - if (meta == 1) + case 1: return *ptr + 1; - if (meta == 2) + case 2: return uint2korr(ptr) + 2; - if (meta == 3) + case 3: return uint3korr(ptr) + 3; - if (meta == 4) + case 4: return uint4korr(ptr) + 4; + } case MYSQL_TYPE_VARCHAR: case MYSQL_TYPE_VAR_STRING: length= meta;