mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 23:10:58 +00:00
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>
This commit is contained in:
parent
43ef1f2a5d
commit
bf37aec672
@ -166,9 +166,11 @@ main(void)
|
|||||||
= rxevent_Post(&eventTime, &now, eventSub, &events[counter],
|
= rxevent_Post(&eventTime, &now, eventSub, &events[counter],
|
||||||
NULL, 0);
|
NULL, 0);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
/* A 25% chance that we will cancel a random event */
|
* A 25% chance that we will cancel some event.
|
||||||
if (random() % 4 == 0) {
|
* Randomly pick any event that was scheduled before the current event.
|
||||||
|
*/
|
||||||
|
if (counter > 0 && (random() % 4 == 0)) {
|
||||||
int victim = random() % counter;
|
int victim = random() % counter;
|
||||||
|
|
||||||
if (rxevent_Cancel(&events[victim].event))
|
if (rxevent_Cancel(&events[victim].event))
|
||||||
|
Loading…
Reference in New Issue
Block a user