asf: Reject seeking when no file properties object is available
authorHugo Beauzée-Luyssen <hugo@beauzee.fr>
Fri, 2 Aug 2019 12:33:25 +0000 (14:33 +0200)
committerHugo Beauzée-Luyssen <hugo@beauzee.fr>
Wed, 14 Aug 2019 12:03:49 +0000 (14:03 +0200)
CVE-2019-14534

modules/demux/asf/asf.c

index 9bc4b3d..6724e38 100644 (file)
@@ -428,7 +428,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
         return VLC_SUCCESS;
 
     case DEMUX_SET_TIME:
-        if ( p_sys->p_fp &&
+        if ( !p_sys->p_fp ||
              ! ( p_sys->p_fp->i_flags & ASF_FILE_PROPERTIES_SEEKABLE ) )
             return VLC_EGENERIC;
 
@@ -509,8 +509,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
                                        i_query, args );
 
     case DEMUX_SET_POSITION:
-        if ( p_sys->p_fp &&
-             ! ( p_sys->p_fp->i_flags & ASF_FILE_PROPERTIES_SEEKABLE ) && !p_sys->b_index )
+        if ( !p_sys->p_fp ||
+             ( !( p_sys->p_fp->i_flags & ASF_FILE_PROPERTIES_SEEKABLE ) && !p_sys->b_index ) )
             return VLC_EGENERIC;
 
         SeekPrepare( p_demux );
@@ -533,8 +533,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
         return VLC_SUCCESS;
 
     case DEMUX_CAN_SEEK:
-        if ( p_sys->p_fp &&
-             ! ( p_sys->p_fp->i_flags & ASF_FILE_PROPERTIES_SEEKABLE ) && !p_sys->b_index )
+        if ( !p_sys->p_fp ||
+             ( !( p_sys->p_fp->i_flags & ASF_FILE_PROPERTIES_SEEKABLE ) && !p_sys->b_index ) )
         {
             bool *pb_bool = va_arg( args, bool * );
             *pb_bool = false;