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;
}
--
⑨