From: Ilya Kosarev <i.kosarev@tarantool.org> To: tarantool-patches@dev.tarantool.org Subject: [Tarantool-patches] [PATCH] fix: don't request absent tuple field Date: Wed, 13 Nov 2019 21:20:24 +0300 [thread overview] Message-ID: <20191113182024.28096-1-i.kosarev@tarantool.org> (raw) During replacement of tuple_field_bool_xc with it's non-xc version turned out that it might be called even if there is not enough fields in processed tuple. Now it is fixed. Part of #4247 --- https://github.com/tarantool/tarantool/tree/i.kosarev/fix-tuple-field-request https://github.com/tarantool/tarantool/issues/4247 src/box/alter.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/box/alter.cc b/src/box/alter.cc index 32f84ded7..6741b7aa4 100644 --- a/src/box/alter.cc +++ b/src/box/alter.cc @@ -5265,12 +5265,13 @@ ck_constraint_def_new_from_tuple(struct tuple *tuple) const char *expr_str = tuple_field_str_xc(tuple, BOX_CK_CONSTRAINT_FIELD_CODE, &expr_str_len); - bool out; - if (tuple_field_bool(tuple, BOX_CK_CONSTRAINT_FIELD_IS_ENABLED, - &out) != 0) - diag_raise(); - bool is_enabled = - tuple_field_count(tuple) <= BOX_CK_CONSTRAINT_FIELD_IS_ENABLED || out; + bool is_enabled = true; + if (tuple_field_count(tuple) > BOX_CK_CONSTRAINT_FIELD_IS_ENABLED) { + if (tuple_field_bool(tuple, + BOX_CK_CONSTRAINT_FIELD_IS_ENABLED, + &is_enabled) != 0) + diag_raise(); + } struct ck_constraint_def *ck_def = ck_constraint_def_new(name, name_len, expr_str, expr_str_len, space_id, language, is_enabled); -- 2.17.1
next reply other threads:[~2019-11-13 18:20 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-13 18:20 Ilya Kosarev [this message] 2019-11-14 10:39 ` Kirill Yukhin
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=20191113182024.28096-1-i.kosarev@tarantool.org \ --to=i.kosarev@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH] fix: don'\''t request absent tuple field' \ /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