]> git.sesse.net Git - vlc/blobdiff - modules/demux/vobsub.c
demux: avi: don't allow SET_TIME on non seekable
[vlc] / modules / demux / vobsub.c
index 68da046be5359f8e16cfda4096dff883191f4a91..5de351383745e349b9c167bfc03823a53bd88420 100644 (file)
@@ -1,25 +1,25 @@
 /*****************************************************************************
  * vobsub.c: Demux vobsub files.
  *****************************************************************************
- * Copyright (C) 1999-2004 the VideoLAN team
+ * Copyright (C) 1999-2004 VLC authors and VideoLAN
  * $Id$
  *
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
  *          Derk-Jan Hartman <hartman at videolan dot org>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
 /*****************************************************************************
@@ -387,7 +387,7 @@ static int Demux( demux_t *p_demux )
             }
 
             /* allocate a packet */
-            if( ( p_block = block_New( p_demux, i_size ) ) == NULL )
+            if( ( p_block = block_Alloc( i_size ) ) == NULL )
             {
                 tk.i_current_subtitle++;
                 continue;
@@ -432,7 +432,10 @@ static int TextLoad( text_t *txt, stream_t *s )
         char **ppsz_new;
 
         if( psz == NULL || (n >= INT_MAX/sizeof(char *)) )
+        {
+            free( psz );
             break;
+        }
 
         ppsz_new = realloc( lines, (n + 1) * sizeof (char *) );
         if( ppsz_new == NULL )
@@ -674,7 +677,9 @@ static int DemuxVobSub( demux_t *p_demux, block_t *p_bk )
         }
 
         /* Create a block */
-        p_pkt = block_New( p_demux, i_size );
+        p_pkt = block_Alloc( i_size );
+        if( unlikely(p_pkt == NULL) )
+            break;
         memcpy( p_pkt->p_buffer, p, i_size);
         p += i_size;