shithub: front

Download patch

ref: 0bfa3ffcb484e1ca4e78374339f195405dad2f5e
parent: d4938f099d707d22f1cae99dc1cffc26c142ba7e
author: Ori Bernstein <ori@eigenstate.org>
date: Wed Dec 25 19:46:07 EST 2024

gefs: fix error handling in readsnap()

--- a/sys/src/cmd/gefs/fs.c
+++ b/sys/src/cmd/gefs/fs.c
@@ -2026,7 +2026,7 @@
 	}
 	if(s->donescan){
 		r->count = 0;
-		return;
+		goto Out;
 	}
 	p = r->data;
 	n = m->count;
@@ -2037,7 +2037,7 @@
 		d.qid.path = UNPACK64(s->kv.v + 1);
 		if((ns = dir2statbuf(&d, p, n)) == -1){
 			r->count = 0;
-			return;
+			goto Out;
 		}
 		s->overflow = 0;
 		p += ns;
@@ -2058,9 +2058,11 @@
 		n -= ns;
 	}
 	btexit(s);
+	r->count = p - r->data;
+
+Out:
 	poperror();
 	wunlock(f);
-	r->count = p - r->data;
 	return;
 }
 
--