This can help (and helped) with revealing race conditions.
Signed-off-by: Robin Hack <hack.robin@gmail.com>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
#include <syscall.h>
#endif
-#define NUM_THREADS 3
+#define NUM_THREADS 10
struct parm {
int id;
{
long int rc;
uid_t u;
+ uid_t ru;
(void) arg; /* unused */
- rc = syscall(SYS_setreuid, -1, 0);
- assert_int_equal(rc, 0);
-
- u = geteuid();
- assert_int_equal(u, 0);
+ /* This load can help with revealing race conditions. */
+ for (ru = 0; ru < 2048; ++ru) {
+ rc = syscall(SYS_setreuid, -1, ru);
+ assert_int_equal(rc, 0);
+ u = geteuid();
+ assert_int_equal(u, ru);
+ }
return NULL;
}