From: Serge Petrenko via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: v.shpilevoy@tarantool.org, gorcunov@gmail.com Cc: tarantool-patches@dev.tarantool.org Subject: [Tarantool-patches] [PATCH 3/9] box: actualise iproto_key_type array Date: Sun, 11 Apr 2021 20:55:58 +0300 [thread overview] Message-ID: <90e4309c81dc2007a1f6529871b2ec8420e5be6e.1618163409.git.sergepetrenko@tarantool.org> (raw) In-Reply-To: <cover.1618163409.git.sergepetrenko@tarantool.org> iproto_key_type array is used while validating incoming requests, but it was only half-filled. The last initialized field was 0x2b, while IPROTO_KEY_MAX is currently 0x54. We got away with it, since the array is only used in xrow_header_decode(), xrow_decode_dml() and xrow_decode_synchro(), and all the keys usually present in these requests were present in the array. This is not true anymore, so it's time to make array contents up to date with all the IPROTO_KEY_* constants we have. Part of #5445 --- src/box/iproto_constants.c | 58 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/src/box/iproto_constants.c b/src/box/iproto_constants.c index 029d9888c..addda39dc 100644 --- a/src/box/iproto_constants.c +++ b/src/box/iproto_constants.c @@ -90,6 +90,64 @@ const unsigned char iproto_key_type[IPROTO_KEY_MAX] = /* 0x2a */ MP_MAP, /* IPROTO_TUPLE_META */ /* 0x2b */ MP_MAP, /* IPROTO_OPTIONS */ /* }}} */ + + /* {{{ unused */ + /* 0x2c */ MP_UINT, + /* 0x2d */ MP_UINT, + /* 0x2e */ MP_UINT, + /* 0x2f */ MP_UINT, + /* }}} */ + + /* {{{ body -- response keys */ + /* 0x30 */ MP_ARRAY, /* IPROTO_DATA */ + /* 0x31 */ MP_STR, /* IPROTO_ERROR_24 */ + /* 0x32 */ MP_ARRAY, /* IPROTO_METADATA */ + /* 0x33 */ MP_ARRAY, /* IPROTO_BIND_METADATA */ + /* 0x34 */ MP_UINT, /* IIPROTO_BIND_COUNT */ + /* }}} */ + + /* {{{ unused */ + /* 0x35 */ MP_UINT, + /* 0x36 */ MP_UINT, + /* 0x37 */ MP_UINT, + /* 0x38 */ MP_UINT, + /* 0x39 */ MP_UINT, + /* 0x3a */ MP_UINT, + /* 0x3b */ MP_UINT, + /* 0x3c */ MP_UINT, + /* 0x3d */ MP_UINT, + /* 0x3e */ MP_UINT, + /* 0x3f */ MP_UINT, + /* }}} */ + + /* {{{ body -- sql keys */ + /* 0x40 */ MP_STR, /* IPROTO_SQL_TEXT */ + /* 0x41 */ MP_ARRAY, /* IPROTO_SQL_BIND */ + /* 0x42 */ MP_MAP, /* IPROTO_SQL_INFO */ + /* 0x43 */ MP_UINT, /* IPROTO_STMT_ID */ + /* }}} */ + + /* {{{ unused */ + /* 0x44 */ MP_UINT, + /* 0x45 */ MP_UINT, + /* 0x46 */ MP_UINT, + /* 0x47 */ MP_UINT, + /* 0x48 */ MP_UINT, + /* 0x49 */ MP_UINT, + /* 0x4a */ MP_UINT, + /* 0x4b */ MP_UINT, + /* 0x4c */ MP_UINT, + /* 0x4d */ MP_UINT, + /* 0x4e */ MP_UINT, + /* 0x4f */ MP_UINT, + /* }}} */ + + /* {{{ body -- additional request keys */ + /* 0x50 */ MP_BOOL, /* IPROTO_REPLICA_ANON */ + /* 0x51 */ MP_ARRAY, /* IPROTO_ID_FILTER */ + /* 0x52 */ MP_MAP, /* IPROTO_ERROR */ + /* 0x53 */ MP_UINT, /* IPROTO_TERM */ + /* }}} */ }; const char *iproto_type_strs[] = -- 2.24.3 (Apple Git-128)
next prev parent reply other threads:[~2021-04-11 17:57 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-11 17:55 [Tarantool-patches] [PATCH 0/9] raft: introduce manual elections and fix a bug with re-applying rolled back transactions Serge Petrenko via Tarantool-patches 2021-04-11 17:55 ` [Tarantool-patches] [PATCH 1/9] wal: enrich row's meta information with sync replication flags Serge Petrenko via Tarantool-patches 2021-04-12 13:06 ` Cyrill Gorcunov via Tarantool-patches 2021-04-13 13:26 ` Serge Petrenko via Tarantool-patches 2021-04-12 19:21 ` Serge Petrenko via Tarantool-patches 2021-04-11 17:55 ` [Tarantool-patches] [PATCH 2/9] xrow: introduce a PROMOTE entry Serge Petrenko via Tarantool-patches 2021-04-11 17:55 ` Serge Petrenko via Tarantool-patches [this message] 2021-04-11 17:55 ` [Tarantool-patches] [PATCH 4/9] box: make clear_synchro_queue() write a PROMOTE entry instead of CONFIRM + ROLLBACK Serge Petrenko via Tarantool-patches 2021-04-11 17:56 ` [Tarantool-patches] [PATCH 5/9] box: write PROMOTE even for empty limbo Serge Petrenko via Tarantool-patches 2021-04-11 17:56 ` [Tarantool-patches] [PATCH 6/9] raft: keep track of greatest known term and filter replication sources based on that Serge Petrenko via Tarantool-patches 2021-04-12 19:23 ` Serge Petrenko via Tarantool-patches 2021-04-11 17:56 ` [Tarantool-patches] [PATCH 7/9] replication: introduce a new election mode: "manual" Serge Petrenko via Tarantool-patches 2021-04-11 17:56 ` [Tarantool-patches] [PATCH 8/9] Support manual elections in `box.ctl.clear_synchro_queue()` Serge Petrenko via Tarantool-patches 2021-04-12 19:23 ` Serge Petrenko via Tarantool-patches 2021-04-11 17:56 ` [Tarantool-patches] [PATCH 9/9] box.ctl: rename clear_synchro_queue to promote Serge Petrenko via Tarantool-patches 2021-04-12 19:24 ` Serge Petrenko via Tarantool-patches
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=90e4309c81dc2007a1f6529871b2ec8420e5be6e.1618163409.git.sergepetrenko@tarantool.org \ --to=tarantool-patches@dev.tarantool.org \ --cc=gorcunov@gmail.com \ --cc=sergepetrenko@tarantool.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH 3/9] box: actualise iproto_key_type array' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox