summary refs log tree commit diff
path: root/lisc
diff options
context:
space:
mode:
Diffstat (limited to 'lisc')
-rw-r--r--lisc/util.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lisc/util.c b/lisc/util.c
index 63c73bd..4f09d93 100644
--- a/lisc/util.c
+++ b/lisc/util.c
@@ -328,15 +328,16 @@ bsiter(BSet *bs, uint *elt)
 {
 	uint i;
 
-	for (i = *elt; i < bsmax(bs); i++) {
+	for (i=*elt;; i++) {
 		while (i < bsmax(bs) && !bs->t[i/NBit])
 			i = (i + NBit) & -NBit;
+		if (i >= bsmax(bs))
+			return 0;
 		if (bshas(bs, i)) {
 			*elt = i;
 			return 1;
 		}
 	}
-	return 0;
 }
 
 void