Commit a48dd14f authored by Gildas Bazin's avatar Gildas Bazin

* src/input/subtitles.c: more sanity checks.
parent 133d08f4
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* subtitles.c * subtitles.c
***************************************************************************** *****************************************************************************
* Copyright (C) 2003-2004 VideoLAN * Copyright (C) 2003-2004 VideoLAN
* $Id: subtitles.c,v 1.8 2004/01/25 17:16:06 zorglub Exp $ * $Id: subtitles.c,v 1.9 2004/01/26 19:20:10 gbazin Exp $
* *
* Authors: Derk-Jan Hartman <hartman at videolan.org> * Authors: Derk-Jan Hartman <hartman at videolan.org>
* This is adapted code from the GPL'ed MPlayer (http://mplayerhq.hu) * This is adapted code from the GPL'ed MPlayer (http://mplayerhq.hu)
...@@ -165,7 +165,8 @@ static int compare_sub_priority( const void *a, const void *b ) ...@@ -165,7 +165,8 @@ static int compare_sub_priority( const void *a, const void *b )
* \return a NULL terminated array of filenames with detected possible subtitles. * \return a NULL terminated array of filenames with detected possible subtitles.
* The array contains max MAX_SUBTITLE_FILES items and you need to free it after use. * The array contains max MAX_SUBTITLE_FILES items and you need to free it after use.
*/ */
char** subtitles_Detect( input_thread_t *p_this, char *psz_path, char *psz_fname ) char **subtitles_Detect( input_thread_t *p_this, char *psz_path,
char *psz_fname )
{ {
/* variables to be used for derivatives of psz_fname */ /* variables to be used for derivatives of psz_fname */
char *f_dir, *f_fname, *f_fname_noext, *f_fname_trim, *tmp; char *f_dir, *f_fname, *f_fname_noext, *f_fname_trim, *tmp;
...@@ -204,14 +205,16 @@ char** subtitles_Detect( input_thread_t *p_this, char *psz_path, char *psz_fname ...@@ -204,14 +205,16 @@ char** subtitles_Detect( input_thread_t *p_this, char *psz_path, char *psz_fname
if( tmp ) if( tmp )
{ {
int pos; int pos;
strcpy( f_fname, tmp + 1 ); strncpy( f_fname, tmp + 1, len - 1 );
pos = tmp - psz_fname; f_fname[len - 1] = 0;
strncpy( f_dir, psz_fname, pos + 1 ); pos = tmp - psz_fname + 1;
f_dir[pos + 1] = 0; strncpy( f_dir, psz_fname, __MIN(pos,len-1) );
f_dir[__MIN(pos,len-1)] = 0;
} }
else else
{ {
strcpy( f_fname, psz_fname ); strncpy( f_fname, psz_fname, len - 1 );
f_fname[len - 1] = 0;
strcpy( f_dir, "" ); strcpy( f_dir, "" );
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment