tests: fix potential divide by zero condition 01/14501/3
authorCheyenne Wills <cwills@sinenomine.net>
Fri, 22 Jan 2021 19:48:21 +0000 (12:48 -0700)
committerBenjamin Kaduk <kaduk@mit.edu>
Sat, 23 Jan 2021 00:36:36 +0000 (19:36 -0500)
commitbf37aec672efaf7824d9c96bcff7a45eb47ef280
tree869881ac2259b2d8b03b4fbc29e8567b27e4cf44
parent43ef1f2a5d80aa1c3f5b4831ada8e776ac0c7d13
tests: fix potential divide by zero condition

Running clang's static analysis revealed a possible divide by zero
condition.

There is a random chance of the divide by zero.

- it has to be in the first pass of the main loop testing events
  (counter = 0)
- 90% chance path :   if (counter < (NUMEVENTS -1) &&
                          random() % 10 == 0)      -- needs to be false
- 25% chance path:    if (random() % 4 == 0)       -- needs to be true

if the above conditions are met, the statement
    int victim = random() % counter
is a divide by zero.

Add a check to ensure the counter is greater than zero.  Add a comment
to document that only events prior to the current event are randomly
selected.

Change-Id: I4b4e73fa324842bb504bcc952079af15aea8a6a3
Reviewed-on: https://gerrit.openafs.org/14501
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
tests/rx/event-t.c