diff options
Diffstat (limited to 'multimedia/MPlayer/stream_cddb_fix_20080120.diff')
-rw-r--r-- | multimedia/MPlayer/stream_cddb_fix_20080120.diff | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/multimedia/MPlayer/stream_cddb_fix_20080120.diff b/multimedia/MPlayer/stream_cddb_fix_20080120.diff new file mode 100644 index 0000000000..461d11c854 --- /dev/null +++ b/multimedia/MPlayer/stream_cddb_fix_20080120.diff @@ -0,0 +1,33 @@ +diff -Nur MPlayer-1.0rc2.orig/stream/stream_cddb.c MPlayer-1.0rc2/stream/stream_cddb.c +--- MPlayer-1.0rc2.orig/stream/stream_cddb.c 2007-10-07 14:49:26.000000000 -0500 ++++ MPlayer-1.0rc2/stream/stream_cddb.c 2008-02-01 10:06:49.913021939 -0600 +@@ -53,6 +53,7 @@ + #include "version.h" + #include "stream.h" + #include "network.h" ++#include "libavutil/intreadwrite.h" + + #define DEFAULT_FREEDB_SERVER "freedb.freedb.org" + #define DEFAULT_CACHE_DIR "/.cddb/" +@@ -453,8 +454,9 @@ + } else { + len = ptr2-ptr+1; + } ++ len = FFMIN(sizeof(album_title) - 1, len); + strncpy(album_title, ptr, len); +- album_title[len-2]='\0'; ++ album_title[len]='\0'; + } + mp_msg(MSGT_DEMUX, MSGL_STATUS, MSGTR_MPDEMUX_CDDB_ParseOKFoundAlbumTitle, album_title); + return 0; +@@ -490,8 +492,9 @@ + } else { + len = ptr2-ptr+1; + } ++ len = FFMIN(sizeof(album_title) - 1, len); + strncpy(album_title, ptr, len); +- album_title[len-2]='\0'; ++ album_title[len]='\0'; + } + mp_msg(MSGT_DEMUX, MSGL_STATUS, MSGTR_MPDEMUX_CDDB_ParseOKFoundAlbumTitle, album_title); + return cddb_request_titles(cddb_data); |