git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrzej Hunt <andrzej@ahunt.org>
To: Taylor Blau <me@ttaylorr.com>,
	Andrzej Hunt via GitGitGadget <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, Jeff King <peff@peff.net>,
	"brian m . carlson" <sandals@crustytoothpaste.net>
Subject: Re: [PATCH] connect: also update offset for features without values
Date: Sun, 26 Sep 2021 17:14:35 +0200	[thread overview]
Message-ID: <14ff5661-e06a-8348-7088-387fa7e3e094@ahunt.org> (raw)
In-Reply-To: <YUYLXKN8U9AMa5ke@nand.local>



On 18/09/2021 17:53, Taylor Blau wrote:
>> parse_feature_value() does not update offset if the feature being
>> searched for does not specify a value. A loop that uses
>> parse_feature_value() to find a feature which was specified without a
>> value therefore might never exit (such loops will typically use
>> next_server_feature_value() as opposed to parse_feature_value() itself).
>> This usually isn't an issue: there's no point in using
>> next_server_feature_value() to search for repeated instances of the same
>> capability unless that capability typically specifies a value - but a
>> broken server could send a response that omits the value for a feature
>> even when we are expecting a value.
> 
> It may be worth adding a little detail here. parse_feature_value takes
> an offset, and uses it to seek past the point in features_list that
> we've already seen. But if we get a value-less feature, then offset is
> never updated, and we'll keep parsing the same thing over and over in a
> loop.
> 
> (I know that you know all of that, but I think it is worth spelling out
> a little more clearly in the patch message).

Good point - I've tried to improve this for V2 (I've mostly just copied 
your description verbatim).

> 
>> Therefore we add an offset update calculation for the no-value case,
>> which helps ensure that loops using next_server_feature_value() will
>> always terminate.
> 
>> next_server_feature_value(), and the offset calculation, were first
>> added in 2.28 in:
>>    2c6a403d96 (connect: add function to parse multiple v1 capability values, 2020-05-25)
> 
> This line wrapping is a little odd, but not a big deal.

I'll fix this for V2 - I think I tried too hard to make this look nice, 
but putting the reference inline does look better (and I've now realised 
this seems to be the usual way of doing things here).

ATB,

Andrzej

  parent reply	other threads:[~2021-09-26 15:14 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-18 13:14 [PATCH] connect: also update offset for features without values Andrzej Hunt via GitGitGadget
2021-09-18 15:53 ` Taylor Blau
2021-09-18 22:05   ` Jeff King
2021-09-18 22:35     ` Taylor Blau
2021-09-19  1:02     ` Eric Sunshine
2021-09-19  2:20       ` Jeff King
2021-09-19  2:53         ` Eric Sunshine
2021-09-19  7:12         ` Junio C Hamano
2021-09-26 15:14   ` Andrzej Hunt [this message]
2021-09-18 17:18 ` brian m. carlson
2021-09-23 21:20 ` Junio C Hamano
2021-09-23 21:38   ` Jeff King
2021-09-23 21:52     ` Junio C Hamano
2021-09-23 22:02       ` Jeff King
2021-09-26 15:16         ` Andrzej Hunt
2021-09-26 15:58 ` [PATCH v2] " Andrzej Hunt via GitGitGadget
2021-09-27 19:47   ` 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=14ff5661-e06a-8348-7088-387fa7e3e094@ahunt.org \
    --to=andrzej@ahunt.org \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=me@ttaylorr.com \
    --cc=peff@peff.net \
    --cc=sandals@crustytoothpaste.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).