tests: fix out of bounds access in the rx-event test 62/12762/3
authorMichael Meffie <mmeffie@sinenomine.net>
Mon, 6 Nov 2017 22:37:46 +0000 (17:37 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Thu, 23 Nov 2017 01:50:47 +0000 (20:50 -0500)
Use the NUMEVENTS symbol which defines the array size instead of an
incorrect hard coded number when checking if a second event can be added
to be fired at the same time.  This fixes a potential out of bounds
access of the event test array.

Also update the comment which incorrectly mentions the incorrect number
of events in the test.

Change-Id: I4f993b42e53e7e6a42fa31302fd1baa70e9f5041
Reviewed-on: https://gerrit.openafs.org/12762
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

tests/rx/event-t.c

index bc07fd3..9c2b8e1 100644 (file)
@@ -144,7 +144,7 @@ main(void)
     ok(pthread_create(&handler, NULL, eventHandler, NULL) == 0,
        "Created handler thread");
 
-    /* Add 1000 random events to fire over the next 3 seconds, but front-loaded
+    /* Add a number of random events to fire over the next 3 seconds, but front-loaded
      * a bit so that we can exercise the cancel/fire race path. */
 
     for (counter = 0; counter < NUMEVENTS; counter++) {
@@ -160,7 +160,7 @@ main(void)
            = rxevent_Post(&eventTime, &now, eventSub, &events[counter], NULL, 0);
 
        /* A 10% chance that we will schedule another event at the same time */
-       if (counter!=999 && random() % 10 == 0) {
+       if (counter < (NUMEVENTS - 1) && random() % 10 == 0) {
             counter++;
             events[counter].event
                 = rxevent_Post(&eventTime, &now, eventSub, &events[counter],