# HG changeset patch # User ib # Date 1295350789 0 # Node ID f1b29f4139407f33f0f1a12d3b1d22825e16bdd3 # Parent 29b63f338a9b08fbf90090197bd8416e5b14804f Correct translation of filenames and prevent out-of-bounds array access diff -r 29b63f338a9b -r f1b29f413940 gui/mplayer/gui_common.c --- a/gui/mplayer/gui_common.c Tue Jan 18 11:30:46 2011 +0000 +++ b/gui/mplayer/gui_common.c Tue Jan 18 11:39:49 2011 +0000 @@ -54,6 +54,7 @@ { int i; char * p; + size_t len; switch ( guiIntfStruct.StreamType ) { @@ -67,8 +68,10 @@ av_strlcpy(tmp, p + 1, tmplen); else av_strlcpy(tmp, guiIntfStruct.Filename, tmplen); - if ( tmp[strlen( tmp ) - 4] == '.' ) tmp[strlen( tmp ) - 4]=0; - if ( tmp[strlen( tmp ) - 5] == '.' ) tmp[strlen( tmp ) - 5]=0; + len=strlen( tmp ); + if ( ( len > 3 )&&( tmp[len - 3] == '.' ) ) tmp[len - 3]=0; + else if ( ( len > 4 )&&( tmp[len - 4] == '.' ) ) tmp[len - 4]=0; + else if ( ( len > 5 )&&( tmp[len - 5] == '.' ) ) tmp[len - 5]=0; } else av_strlcpy( tmp,MSGTR_NoFileLoaded,tmplen ); break; #ifdef CONFIG_DVDREAD