1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-02 10:51:20 +03:00

udev: silence TOCTOU warning when creating a directory

CID#979416. There is no real race here to fix, but lets make coverity
happy and rework the code.

Note that we still fail if the directory is removed _after_ we ran
mkdir(), so the same race is still there. Coverity is complaining, though.
Rewrite the code to make it happy.

(David: rewrote the commit-message to note that this is not a race. If I'm
        wrong, blame me, not Ronny!)
This commit is contained in:
Ronny Chevalier 2014-11-09 15:42:23 +01:00 committed by David Herrmann
parent 8e24a4f8b6
commit c9732bae8f

View File

@ -86,12 +86,12 @@ static void usage(void)
*/
static int prepare(char *dir, char *filename)
{
struct stat statbuf;
char buf[512];
int fd;
int r, fd;
if (stat(dir, &statbuf) < 0)
mkdir(dir, 0700);
r = mkdir(dir, 0700);
if (r < 0 && errno != EEXIST)
return -errno;
snprintf(buf, sizeof(buf), "%s/%s", dir, filename);