diff options
author | Máximo Cuadros <mcuadros@gmail.com> | 2018-06-06 10:08:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-06 10:08:40 +0200 |
commit | d33d3efff3e5aa7ac1be2c97f4dd1ac2190f00e2 (patch) | |
tree | d17ac93f9f75d81410389e255af854f7b2aae006 /config/config.go | |
parent | ae788cfabbc02c2f836f5d8c3cc18021a97e9a88 (diff) | |
parent | d87faeca21e6f416e88ae3d24dae58845d7487d4 (diff) | |
download | go-git-d33d3efff3e5aa7ac1be2c97f4dd1ac2190f00e2.tar.gz |
Merge pull request #848 from josephvusich/fix/cve-2018-11235
config: modules, worktree: Submodule fixes for CVE-2018-11235
Diffstat (limited to 'config/config.go')
-rw-r--r-- | config/config.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/config/config.go b/config/config.go index c730015..ce6506d 100644 --- a/config/config.go +++ b/config/config.go @@ -135,7 +135,7 @@ func (c *Config) Unmarshal(b []byte) error { if err := c.unmarshalPack(); err != nil { return err } - c.unmarshalSubmodules() + unmarshalSubmodules(c.Raw, c.Submodules) if err := c.unmarshalBranches(); err != nil { return err @@ -182,13 +182,17 @@ func (c *Config) unmarshalRemotes() error { return nil } -func (c *Config) unmarshalSubmodules() { - s := c.Raw.Section(submoduleSection) +func unmarshalSubmodules(fc *format.Config, submodules map[string]*Submodule) { + s := fc.Section(submoduleSection) for _, sub := range s.Subsections { m := &Submodule{} m.unmarshal(sub) - c.Submodules[m.Name] = m + if m.Validate() == ErrModuleBadPath { + continue + } + + submodules[m.Name] = m } } |