From: Junio C Hamano Date: Fri, 07 Sep 2012 17:07:01 GMT Subject: Re: [PATCHv2] fetch --all: pass --tags/--no-tags through to each remote Message-ID: <7v1uidzrre.fsf@alter.siamese.dyndns.org> In-Reply-To: <1346880139-2281-1-git-send-email-ComputerDruid@gmail.com> Dan Johnson writes: > When fetch is invoked with --all, we need to pass the tag-following > preference to each individual fetch; without this, we will always > auto-follow tags, preventing us from fetching the remote tags into a > remote-specific namespace, for example. > > Reported-by: Oswald Buddenhagen > Signed-off-by: Dan Johnson > --- > On Sat, Sep 1, 2012 at 7:22 AM, Jeff King wrote: >>Hmm. We allocate argv in fetch_multiple like this: >> >> const char *argv[12] = { "fetch", "--append" }; >> >>and then add a bunch of options to it, along with the name of the >>remote. By my count, the current code can hit exactly 12 (including the >>terminating NULL) if all options are set. Your patch would make it >>possible to overflow. Of course, I may be miscounting since it is >>extremely error-prone to figure out the right number by tracing each >>possible conditional. >> >>Maybe we should switch it to a dynamic argv_array? Like this: >> >> [1/2]: argv-array: add pop function >> [2/2]: fetch: use argv_array instead of hand-building arrays > > This version is re-rolled to be on top of jk/argv-array, avoiding the issue of > the fixed-size array entirely. If needed, we could of course use the old > version of this patch and bump the number, but I figure this is preferable. Thanks. Queued.