#include <unistd.h>
#include <fcntl.h>
#include <string.h>
+#include <limits.h>
#include <signal.h>
#include <time.h>
#include <locale.h>
td->io_issues[i] = 0;
td->ts.total_io_u[i] = 0;
}
-
+
fio_gettime(&tv, NULL);
td->ts.runtime[0] = 0;
td->ts.runtime[1] = 0;
*/
fio_mutex_remove(td->mutex);
- if (td->o.uid != -1U && setuid(td->o.uid)) {
- td_verror(td, errno, "setuid");
- goto err;
- }
+ /*
+ * A new gid requires privilege, so we need to do this before setting
+ * the uid.
+ */
if (td->o.gid != -1U && setgid(td->o.gid)) {
td_verror(td, errno, "setgid");
goto err;
}
+ if (td->o.uid != -1U && setuid(td->o.uid)) {
+ td_verror(td, errno, "setuid");
+ goto err;
+ }
/*
* May alter parameters that init_io_u() will use, so we need to