[vlc-devel] commit: Fixed double free. (Laurent Aimar )

git version control git at videolan.org
Thu Nov 20 20:13:44 CET 2008


vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Thu Nov 20 20:12:51 2008 +0100| [469dc54720a2bafd6c2b7529904073b529d29f1f] | committer: Laurent Aimar 

Fixed double free.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=469dc54720a2bafd6c2b7529904073b529d29f1f
---

 modules/demux/ts.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/modules/demux/ts.c b/modules/demux/ts.c
index 7394db2..9a195ed 100644
--- a/modules/demux/ts.c
+++ b/modules/demux/ts.c
@@ -1562,15 +1562,15 @@ static void PIDInit( ts_pid_t *pid, bool b_psi, ts_psi_t *p_owner )
 
         if( !b_old_valid )
         {
-            free( pid->psi );
             pid->psi = malloc( sizeof( ts_psi_t ) );
             if( pid->psi )
             {
-                pid->psi->handle= NULL;
-                pid->psi->i_prg = 0;
-                pid->psi->prg   = NULL;
+                pid->psi->handle = NULL;
+                TAB_INIT( pid->psi->i_prg, pid->psi->prg );
             }
         }
+        assert( pid->psi );
+
         pid->psi->i_pat_version  = -1;
         pid->psi->i_sdt_version  = -1;
         if( p_owner )
@@ -3186,7 +3186,7 @@ static void PMTCallBack( demux_t *p_demux, dvbpsi_pmt_t *p_pmt )
                  * parsing the SDT/EDT */
                 dvbpsi_DetachDemux( pid->psi->handle );
                 free( pid->psi );
-                pid->psi = 0;
+                pid->psi = NULL;
             }
             else
             {




More information about the vlc-devel mailing list