X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.c;h=9c556705f124d1365afca2aac2e3712b61a1a2c7;hp=a85f577624ab7912b9893ba83dc383ef0fd53022;hb=7ed4d7abf0d7720d532d9680ebf69745d9270a5e;hpb=8bad3c5b15c221cbd141a357d8ba81ca4cc45cac diff --git a/fio.c b/fio.c index a85f5776..9c556705 100644 --- a/fio.c +++ b/fio.c @@ -1070,14 +1070,18 @@ static void *thread_main(void *data) */ 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