From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id CABBF2D913 for ; Sun, 28 Apr 2019 05:11:30 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 55ofbDGV0TU7 for ; Sun, 28 Apr 2019 05:11:30 -0400 (EDT) Received: from smtpng2.m.smailru.net (smtpng2.m.smailru.net [94.100.179.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 849432D8FB for ; Sun, 28 Apr 2019 05:11:30 -0400 (EDT) Subject: [tarantool-patches] Re: [PATCH] travis-ci: set right flags in release testing jobs From: Vladislav Shpilevoy References: <64db98703d236c2e6775601a48fb19c3bc8ba955.1556241512.git.alexander.turenko@tarantool.org> <20190428054028.vxdwsboswt5strjl@tkn_work_nb> Message-ID: Date: Sun, 28 Apr 2019 12:11:28 +0300 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-Help: List-Unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-Subscribe: List-Owner: List-post: List-Archive: To: Alexander Turenko Cc: tarantool-patches@freelists.org >> >>> * xrow_decode_*() functions could read uninitialized data when printing >>> a hex code for a row if the received msgpack is empty, but there are >>> expected keys. >> >> Please, suggest a change for wording if the current one is not clear. Ahh, now I see. It is possible that row->bodycnt == 0 and we jump to 'done'. It tries to write an error via xrow_on_decode_err, which reads row->body[0]. Probably then I can suggest adding an explicit mention of xrow_on_decode_err() function and an attempt to access an array by index out of range. I did not understand your explanation below about cycles and dump_row_hex(), because I did not know, that they are not used in xrow_decode_dml() directly, but via xrow_on_decode_err(). >> My change causes `for (const char *cur = start; cur < end;) { ... }` in >> dump_row_hex() to walk around the loop body and so prevents reading from >> `start` in the loop (NULL < NULL is false). Then you can ignore my comments about xrow_decode_dml and xrow_decode_ballot. Others are still valid. By the way, \\\ , \ `| ) ( .-""-. | | /_ { '. | | (/ `\ } ) | | ^/ ^`} { \ \ \= ( { ) \ \ '-, { {{ \ \_.' ) } ) \.-' ( ( /'-.'_. ) ( } \_( { _/\ ) '--' `-;\ \ _.-' / / / <\/>_.' .' / / <\/>/. ' /<\// / _ |\`- _ . -/| - _- ` _.-'`_/- | \ - - - - \\\ }`<\/> <\/>`{ { -<\/>_<\/>_<\/>- } } { <\/>. <\/> {`<\/> <\/>`} } -<\/>_<\/>_<\/>_<\/>- { { } } } { H A P P Y { <\/> B I R T H D A Y <\/> `<\/> <\/>' -<\/>_<\/>_<\/>_<\/>_<\/>-