From: Jeff King <peff@peff.net>
To: Johannes Schindelin <johannes.schindelin@gmx.de>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH] revert: clarify seemingly bogus OPT_END repetition
Date: Tue, 5 Jul 2016 16:28:20 -0400 [thread overview]
Message-ID: <20160705202820.GA14496@sigill.intra.peff.net> (raw)
In-Reply-To: <5b424bad41ca027b39eea4b1fa9d87df0a489e0f.1467719888.git.johannes.schindelin@gmx.de>
On Tue, Jul 05, 2016 at 01:58:51PM +0200, Johannes Schindelin wrote:
> This developer stumbled over repeated OPT_END entries and was *so
> close* (almost touches his thumb with his index finger) to collapse
> them into a single one. Only inspecting the file's history with
> `git log -p -SOPT_END` clarified why they are there.
Wow, that's really ugly, and confused me, too.
I've been trying to move us away from this kind of manually-computed
array size, simply because it's error-prone and often not obviously
correct[1].
I wonder if parse_options_concat should simply allocate a new list
(after computing the total required size). I guess this is the only
caller, though, so perhaps it's not the end of the world. In the
meantime, your patch is certainly an improvement.
By the way, I notice that the error message when concat fails is just:
if (parse_options_concat(options, ARRAY_SIZE(options), cp_extra))
die(_("program error"));
Should this become:
die("BUG: not enough room to concatenate options");
as part of your BUG cleanups elsewhere?
-Peff
[1] At least the concat interface takes ARRAY_SIZE(), so that we will
catch an error, rather than silently causing memory corruption. A
much more likely error is to forget OPT_END(), which will cause
parse_options to read past the end of the array.
next prev parent reply other threads:[~2016-07-05 20:28 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-05 11:58 [PATCH] revert: clarify seemingly bogus OPT_END repetition Johannes Schindelin
2016-07-05 20:28 ` Jeff King [this message]
2016-07-05 20:44 ` Jeff King
2016-07-05 21:15 ` Jacob Keller
2016-07-06 7:01 ` Johannes Schindelin
2016-07-06 11:09 ` Michael J Gruber
2016-07-06 13:16 ` Over-/underquoting, was " Johannes Schindelin
2016-07-06 20:15 ` Jacob Keller
2016-07-09 15:34 ` Michael J Gruber
2016-07-09 23:35 ` Eric Wong
2016-07-06 7:28 ` Johannes Schindelin
2016-07-06 7:03 ` Johannes Schindelin
2016-07-06 10:48 ` Jeff King
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=20160705202820.GA14496@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=johannes.schindelin@gmx.de \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.