git: plan9front

Download patch

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, "");
--