aboutsummaryrefslogtreecommitdiffstats
path: root/config/config.go
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2018-06-06 10:08:40 +0200
committerGitHub <noreply@github.com>2018-06-06 10:08:40 +0200
commitd33d3efff3e5aa7ac1be2c97f4dd1ac2190f00e2 (patch)
treed17ac93f9f75d81410389e255af854f7b2aae006 /config/config.go
parentae788cfabbc02c2f836f5d8c3cc18021a97e9a88 (diff)
parentd87faeca21e6f416e88ae3d24dae58845d7487d4 (diff)
downloadgo-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.go12
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
}
}