diff --git a/source/blender/blenkernel/intern/boids.c b/source/blender/blenkernel/intern/boids.c index 489e26c5cbe..d765dff132f 100644 --- a/source/blender/blenkernel/intern/boids.c +++ b/source/blender/blenkernel/intern/boids.c @@ -1006,9 +1006,11 @@ void boid_brain(BoidBrainData *bbd, int p, ParticleData *pa) case eBoidRulesetType_Random: { /* use random rule for each particle (always same for same particle though) */ - rule = BLI_findlink(&state->rules, rand % BLI_listbase_count(&state->rules)); - - apply_boid_rule(bbd, rule, &val, pa, -1.0); + const int n = BLI_listbase_count(&state->rules); + if (n) { + rule = BLI_findlink(&state->rules, rand % n); + apply_boid_rule(bbd, rule, &val, pa, -1.0); + } break; } case eBoidRulesetType_Average: