]> git.sesse.net Git - vlc/commitdiff
Forcefully update file size if read data past the former end of it
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Wed, 8 Apr 2009 15:49:51 +0000 (18:49 +0300)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Wed, 8 Apr 2009 15:49:51 +0000 (18:49 +0300)
Maybe we could call fstat() at every read anyway? While a file is open,
the operating system is extremely likely to have its meta data cached.

modules/access/file.c

index cc7da19e254e96be8c7f49ebfb66ead066261aa1..8112c0022af1c33a2d8b5cf81150ff90f62bdffa 100644 (file)
@@ -235,8 +235,8 @@ static ssize_t Read( access_t *p_access, uint8_t *p_buffer, size_t i_len )
     p_sys->i_nb_reads++;
 
 #ifdef HAVE_SYS_STAT_H
-    if( p_access->info.i_size != 0 &&
-        (p_sys->i_nb_reads % INPUT_FSTAT_NB_READS) == 0 )
+    if ((p_access->info.i_size && !(p_sys->i_nb_reads % INPUT_FSTAT_NB_READS))
+     || (p_access->info.i_pos > p_access->info.i_size))
     {
         struct stat st;