]> Cypherpunks.ru repositories - goredo.git/commitdiff
Empty target names must not be present in .rec
authorSergey Matveev <stargrave@stargrave.org>
Sat, 30 Sep 2023 17:50:34 +0000 (20:50 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 1 Oct 2023 06:58:17 +0000 (09:58 +0300)
dep.go
ifchange.go
ood.go

diff --git a/dep.go b/dep.go
index 0add0a79c4329b7c6b701a8e0d880eea4c357b84..6644ac54695674cc8c8ad539a1e17ecadc37f7b5 100644 (file)
--- a/dep.go
+++ b/dep.go
@@ -206,6 +206,10 @@ func depRead(pth string) (*DepInfo, error) {
                        }
                        depInfo.ifcreates = append(depInfo.ifcreates, dep)
                case DepTypeIfchange:
+                       dep := m["Target"]
+                       if dep == "" {
+                               return nil, ErrBadRecFormat
+                       }
                        inode, err := inodeFromRec(m)
                        if err != nil {
                                log.Print(err)
@@ -213,7 +217,7 @@ func depRead(pth string) (*DepInfo, error) {
                        }
                        hsh := mustHexDecode(m["Hash"])
                        depInfo.ifchanges = append(depInfo.ifchanges, DepInfoIfchange{
-                               tgt: m["Target"], inode: inode, hash: hsh,
+                               tgt: dep, inode: inode, hash: hsh,
                        })
                case DepTypeStamp:
                        hsh := m["Hash"]
index 84bd2607bafad1011c23f908f27a0d7a62e17561..bfe65f1d6468c6e163825d29b7a866f4a68104d4 100644 (file)
@@ -58,9 +58,6 @@ func collectDeps(
                }
        }
        for _, dep := range depInfo.ifchanges {
-               if dep.tgt == "" {
-                       return alwayses
-               }
                if dep.tgt == tgt {
                        continue
                }
diff --git a/ood.go b/ood.go
index 3843fa1170b173e2469d240a2feef8ab005d7c2c..5dc543f56aa263d821b33dc03a4d8fa30d66ccf7 100644 (file)
--- a/ood.go
+++ b/ood.go
@@ -149,9 +149,6 @@ func isOOD(cwd, tgtOrig string, level int, seen map[string]struct{}) (bool, erro
        }
 
        for _, dep := range depInfo.ifchanges {
-               if dep.tgt == "" {
-                       return ood, TgtError{tgtOrig, ErrMissingTarget}
-               }
                tracef(CDebug, "ood: %s%s -> %s: checking", indent, tgtOrig, dep.tgt)
                ood, cached = OODCache[path.Join(cwd, dep.tgt)]
                if cached {