ref: b0d33c09ff8fdb48e12843046033d1df68c9c54f
parent: 108f94b25a7ae4846d7b350ee038c28cb96eed76
author: Ori Bernstein <ori@eigenstate.org>
date: Fri Jul 19 16:37:11 EDT 2024
gefs: more/stricter asserts and checks
--- a/sys/src/cmd/gefs/fs.c
+++ b/sys/src/cmd/gefs/fs.c
@@ -1334,7 +1334,7 @@
findparent(t, up, &upup, &name, kbuf, sizeof(kbuf));
dkey(&k, upup, name, kbuf, sizeof(kbuf));
if(!btlookup(t, &k, &kv, kvbuf, sizeof(kvbuf)))
- error(Efs);
+ broke("missing parent");
kv2dir(&kv, &d);
dir = getdent(mnt, upup, &d);
}
@@ -1720,6 +1720,7 @@
nm++;
}
touch(f->dent, &mb[nm++]);
+ assert(nm <= nelem(mb));
upsert(f->mnt, mb, nm);
de = getdent(f->mnt, f->qpath, &d);
@@ -1844,6 +1845,7 @@
(*ao)->dent = nil;
}
touch(f->dir, &mb[nm++]);
+ assert(nm <= nelem(mb));
upsert(f->mnt, mb, nm);
f->dent->gone = 1;
r.type = Rremove;
--- a/sys/src/cmd/gefs/ream.c
+++ b/sys/src/cmd/gefs/ream.c
@@ -75,7 +75,7 @@
dir2kv(-1, &d, &kv, vbuf, sizeof(vbuf));
setval(r, &kv);
- p = packsuper(kbuf, sizeof(kbuf), 0);
+ p = packsuper(kbuf, sizeof(kbuf), Qmainroot);
kv.k = kbuf;
kv.nk = p - kbuf;
p = packdkey(vbuf, sizeof(vbuf), -1, "");
--
⑨