]> ruderich.org/simon Gitweb - nsscash/nsscash.git/commitdiff
nsscash: improve index sanity check
authorSimon Ruderich <simon@ruderich.org>
Sat, 8 Jun 2019 13:49:55 +0000 (15:49 +0200)
committerSimon Ruderich <simon@ruderich.org>
Sat, 8 Jun 2019 13:49:55 +0000 (15:49 +0200)
This ensures that the index has the proper size and is not missing any
entries.

group.go
passwd.go

index 02502f62a147464eee533c8ce3a3ec1683fb0748..7cc084187d15f613d140f251eef5cfdfea0d4751 100644 (file)
--- a/group.go
+++ b/group.go
@@ -209,7 +209,8 @@ func SerializeGroups(w io.Writer, grs []Group) error {
        }
 
        // Sanity check
-       if indexOrig.Len() != indexId.Len() ||
+       if len(grs)*8 != indexOrig.Len() ||
+               indexOrig.Len() != indexId.Len() ||
                indexId.Len() != indexName.Len() {
                return fmt.Errorf("indexes have inconsistent length")
        }
index c07e9c73914d378d8964756994542f92eeefb3b1..1b4939c63ac6a1a9b2c634bdd0a74a2def5f0419 100644 (file)
--- a/passwd.go
+++ b/passwd.go
@@ -191,7 +191,8 @@ func SerializePasswds(w io.Writer, pws []Passwd) error {
        }
 
        // Sanity check
-       if indexOrig.Len() != indexId.Len() ||
+       if len(pws)*8 != indexOrig.Len() ||
+               indexOrig.Len() != indexId.Len() ||
                indexId.Len() != indexName.Len() {
                return fmt.Errorf("indexes have inconsistent length")
        }