commit - 441e144cdc3b06bd194fd1e33f45a639cc9848f9
commit + a2965dbecb29aa632bfb7346d3f970ae1545dde3
blob - 234ba60855b9a639f224b01c1bc9999a99169602
blob + bfd13136b4b4d3a004ddfae210e37e3237e193e6
--- lib/object_idset.c
+++ lib/object_idset.c
if (set->nelem == 0)
return got_error(GOT_ERR_NO_OBJ);
- n = arc4random_uniform(set->nelem);
+ if (set->nelem == 1)
+ n = 0;
+ else
+ n = arc4random_uniform(set->nelem);
for (i = 0; i < nitems(set->entries); i++) {
TAILQ_FOREACH_SAFE(entry, &set->entries[i], entry, tmp) {
- if (--n == 0) {
+ if (n == 0) {
TAILQ_REMOVE(&set->entries[i], entry, entry);
if (data)
*data = entry->data;
set->nelem--;
return NULL;
}
+ n--;
}
-
}
return got_error(GOT_ERR_NO_OBJ);