[prev in list] [next in list] [prev in thread] [next in thread]
List: git
Subject: RE: [BUG] fatal: transport 'file' not allowed during submodule add
From: <rsbecker () nexbridge ! com>
Date: 2022-12-30 23:16:11
Message-ID: 000201d91ca4$b868caf0$293a60d0$ () nexbridge ! com
[Download RAW message or body]
On December 30, 2022 4:04 PM, Taylor Blau wrote:
> On Wed, Dec 28, 2022 at 09:42:39AM -0500, rsbecker@nexbridge.com wrote:
> > > From: Junio C Hamano <jch2355@gmail.com> On Behalf Of Junio C Hamano
> > On December 27, 2022 10:34 PM, Junio C Hamano wrote:
> > > <rsbecker@nexbridge.com> writes:
> > >
> > > > As of 2.39.0, I am now getting fatal: transport 'file' not allowed
> > > > when performing a submodule add after a clone -l. The simple
> > > > reproduce of this
> > > > is:
> > > > ...
> > > > This happens for any submodule add on the same system. Some online
> > > > research indicates that there was a security patch to git causing
> > > > this, but I can't find it. This does not seem correct to me or how
> > > > this
> > improves
> > > security.
> > > > Help please - this is causing some of my workflows to break.
> > >
> > > Thanks for reporting, Randall.
> > >
> > > This suspiciously sounds like what a1d4f67c (transport: make
> > `protocol.file.allow`
> > > be "user" by default, 2022-07-29) is doing deliberately. Taylor,
> > > does this
> > look like a
> > > corner case the 2.30.6 updates forgot to consider?
> >
> > I have tried using 'git config --local protocol.file.allow always'
> > and/or 'git config --local protocol.allow always' to get past this,
> > without success.
>
> I couldn't reproduce the symptom you described. Indeed, the behavior of not
> allowing local-submodules to be cloned without explicitly opting in via the
> `protocol.file.allow` configuration is intentional.
>
> The patch Junio mentioned, a1d4f67c12 (transport: make `protocol.file.allow` be
> "user" by default, 2022-07-29) has some examples of why this behavior was
> changed in the 2.30.6 update.
>
> If you run either `git config --global protocol.file.allow always`, or replace your \
> last submodule add with:
>
> $ git -c protocol.file.allow=always submodule add /path/to/subsrc.git
>
> it should work as expected.
Ok, operator error. This does work as expected if you run the test slightly \
different. If the repositories are all cloned, the upstream remotes are set up \
properly and the submodule add works. In my test case, I used git remote add with a \
relative path. This seems to be an edge condition that triggers the situation. When \
avoiding the upstream remote command (implied by clone), the submodule add works if \
the protocol.file.allow = always, no matter how it is set.
--Randall
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic