[MPlayer-cvslog] r21855 - trunk/stream/tv.c

voroshil subversion at mplayerhq.hu
Mon Jan 8 06:55:47 CET 2007


Author: voroshil
Date: Mon Jan  8 06:55:46 2007
New Revision: 21855

Modified:
   trunk/stream/tv.c

Log:
Two crash issues fixed:
1. Freeing of unallocated memory when tv driver fails to initialize itself.
2. Call to tv driver's tv_uninit more than once.



Modified: trunk/stream/tv.c
==============================================================================
--- trunk/stream/tv.c	(original)
+++ trunk/stream/tv.c	Mon Jan  8 06:55:46 2007
@@ -480,6 +480,7 @@
     sh_audio_t *sh_audio = NULL;
     tvi_functions_t *funcs;
     
+    demuxer->priv=NULL;
     if(!(tvh=tv_begin())) return NULL;
     if (!tv_init(tvh)) return NULL;
     if (!open_tv(tvh)){
@@ -625,7 +626,9 @@
 static void demux_close_tv(demuxer_t *demuxer)
 {
     tvi_handle_t *tvh=(tvi_handle_t*)(demuxer->priv);
+    if (!tvh) return;
     tvh->functions->uninit(tvh->priv);
+    demuxer->priv=NULL;
 }
 
 /* ================== STREAM_TV ===================== */
@@ -668,7 +671,12 @@
 
 int tv_uninit(tvi_handle_t *tvh)
 {
-    return(tvh->functions->uninit(tvh->priv));
+    int res;
+    if(!tvh) return 1;
+    if (!tvh->priv) return 1;
+    res=tvh->functions->uninit(tvh->priv);
+    if(res) tvh->priv=NULL;
+    return res;
 }
 
 /* utilities for mplayer (not mencoder!!) */



More information about the MPlayer-cvslog mailing list