]> git.sesse.net Git - nageru/commitdiff
Avoid a time-to-check-versus-time-of-use error on mkdir().
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Fri, 21 Dec 2018 23:13:46 +0000 (00:13 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Fri, 21 Dec 2018 23:13:46 +0000 (00:13 +0100)
Found by Coverity Scan. Not relevant in practice, since we do not
support running on untrusted data.

futatabi/main.cpp

index 33a486a56440eb9ca93f62e61a51a3fdc55fa135..3146aa52d5eb2f55bf6d0fd0ca9adede42fab95f 100644 (file)
@@ -200,13 +200,11 @@ int main(int argc, char **argv)
 
        string frame_dir = global_flags.working_directory + "/frames";
 
-       struct stat st;
-       if (stat(frame_dir.c_str(), &st) == -1) {
+       if (mkdir(frame_dir.c_str(), 0777) == 0) {
                fprintf(stderr, "%s does not exist, creating it.\n", frame_dir.c_str());
-               if (mkdir(frame_dir.c_str(), 0777) == -1) {
-                       perror(global_flags.working_directory.c_str());
-                       exit(1);
-               }
+       } else if (errno != EEXIST) {
+               perror(global_flags.working_directory.c_str());
+               exit(1);
        }
 
        avformat_network_init();