Fix av_file_map(): replace stat(filename, &st) with fstat(fd, &st).
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Wed, 22 Dec 2010 16:16:31 +0000 (16:16 +0000)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Wed, 22 Dec 2010 16:16:31 +0000 (16:16 +0000)
The file might be replaced between open() and stat().
Spotted by Mans.

Originally committed as revision 26075 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavutil/file.c

index b325149..1ccb692 100644 (file)
@@ -54,10 +54,10 @@ int av_file_map(const char *filename, uint8_t **bufptr, size_t *size,
         return err;
     }
 
         return err;
     }
 
-    if (stat(filename, &st) < 0) {
+    if (fstat(fd, &st) < 0) {
         err = AVERROR(errno);
         av_strerror(err, errbuf, sizeof(errbuf));
         err = AVERROR(errno);
         av_strerror(err, errbuf, sizeof(errbuf));
-        av_log(&file_log_ctx, AV_LOG_ERROR, "Error occurred in lstat(): %s\n", errbuf);
+        av_log(&file_log_ctx, AV_LOG_ERROR, "Error occurred in fstat(): %s\n", errbuf);
         close(fd);
         return err;
     }
         close(fd);
         return err;
     }