- 20130811 snapshotel8
parent
121a37546e
commit
0c00d403df
@ -1,111 +0,0 @@
|
|||||||
Index: asxparser.c
|
|
||||||
===================================================================
|
|
||||||
--- asxparser.c (wersja 36241)
|
|
||||||
+++ asxparser.c (wersja 36242)
|
|
||||||
@@ -388,7 +388,7 @@
|
|
||||||
|
|
||||||
static void
|
|
||||||
asx_parse_param(ASX_Parser_t* parser, char** attribs, play_tree_t* pt) {
|
|
||||||
- char *name,*val;
|
|
||||||
+ char *name = NULL,*val = NULL;
|
|
||||||
|
|
||||||
name = asx_get_attrib("NAME",attribs);
|
|
||||||
if(!name) {
|
|
||||||
@@ -402,9 +402,11 @@
|
|
||||||
mp_msg(MSGT_PLAYTREE,MSGL_WARN,"=%s\n",val);
|
|
||||||
else
|
|
||||||
mp_msg(MSGT_PLAYTREE,MSGL_WARN,"\n");
|
|
||||||
- return;
|
|
||||||
+ goto err_out;
|
|
||||||
}
|
|
||||||
- play_tree_set_param(pt,name,val);
|
|
||||||
+ mp_msg(MSGT_PLAYTREE, MSGL_ERR, "Support for specifying parameters in playlists has been disabled.\n");
|
|
||||||
+// play_tree_set_param(pt,name,val);
|
|
||||||
+err_out:
|
|
||||||
free(name);
|
|
||||||
free(val);
|
|
||||||
}
|
|
||||||
Index: DOCS/man/en/mplayer.1
|
|
||||||
===================================================================
|
|
||||||
--- DOCS/man/en/mplayer.1 (wersja 36241)
|
|
||||||
+++ DOCS/man/en/mplayer.1 (wersja 36242)
|
|
||||||
@@ -1259,6 +1259,15 @@
|
|
||||||
Play files according to a playlist file (ASX, Winamp, SMIL, or
|
|
||||||
one-file-per-line format).
|
|
||||||
.br
|
|
||||||
+.I WARNING:
|
|
||||||
+The way MPlayer parses and uses playlist files is not safe against
|
|
||||||
+maliciously constructed files.
|
|
||||||
+Such files may trigger harmful actions.
|
|
||||||
+This has been the case for all MPlayer versions, but unfortunately this
|
|
||||||
+fact was not well documented earlier, and some people have even misguidedly
|
|
||||||
+recommended use of -playlist with untrusted sources.
|
|
||||||
+Do NOT use -playlist with random internet sources or files you don't trust!
|
|
||||||
+.br
|
|
||||||
.I NOTE:
|
|
||||||
This option is considered an entry so options found after it will apply
|
|
||||||
only to the elements of this playlist.
|
|
||||||
@@ -1266,6 +1275,13 @@
|
|
||||||
FIXME: This needs to be clarified and documented thoroughly.
|
|
||||||
.
|
|
||||||
.TP
|
|
||||||
+.B \-allow-dangerous-playlist-parsing
|
|
||||||
+This enables parsing any file as a playlist if e.g. a server advertises
|
|
||||||
+a file as playlist.
|
|
||||||
+Only enable if you know all servers involved are trustworthy.
|
|
||||||
+MPlayer's playlist code is not designed to handle malicious playlist files.
|
|
||||||
+.
|
|
||||||
+.TP
|
|
||||||
.B \-rtc\-device <device>
|
|
||||||
Use the specified device for RTC timing.
|
|
||||||
.
|
|
||||||
Index: mplayer.c
|
|
||||||
===================================================================
|
|
||||||
--- mplayer.c (wersja 36241)
|
|
||||||
+++ mplayer.c (wersja 36242)
|
|
||||||
@@ -328,6 +328,8 @@
|
|
||||||
static int crash_debug;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+static int allow_playlist_parsing;
|
|
||||||
+
|
|
||||||
/* This header requires all the global variable declarations. */
|
|
||||||
#include "cfg-mplayer.h"
|
|
||||||
|
|
||||||
@@ -3234,8 +3236,12 @@
|
|
||||||
current_module = "handle_playlist";
|
|
||||||
mp_msg(MSGT_CPLAYER, MSGL_V, "Parsing playlist %s...\n",
|
|
||||||
filename_recode(filename));
|
|
||||||
- entry = parse_playtree(mpctx->stream, use_gui);
|
|
||||||
- mpctx->eof = playtree_add_playlist(entry);
|
|
||||||
+ if (allow_playlist_parsing) {
|
|
||||||
+ entry = parse_playtree(mpctx->stream, use_gui);
|
|
||||||
+ mpctx->eof = playtree_add_playlist(entry);
|
|
||||||
+ } else {
|
|
||||||
+ mp_msg(MSGT_CPLAYER, MSGL_ERR, "Playlist parsing disabled for security reasons. Ignoring file.\n");
|
|
||||||
+ }
|
|
||||||
goto goto_next_file;
|
|
||||||
}
|
|
||||||
mpctx->stream->start_pos += seek_to_byte;
|
|
||||||
Index: cfg-mplayer.h
|
|
||||||
===================================================================
|
|
||||||
--- cfg-mplayer.h (wersja 36241)
|
|
||||||
+++ cfg-mplayer.h (wersja 36242)
|
|
||||||
@@ -306,6 +306,8 @@
|
|
||||||
|
|
||||||
{"noloop", &mpctx_s.loop_times, CONF_TYPE_FLAG, 0, 0, -1, NULL},
|
|
||||||
{"loop", &mpctx_s.loop_times, CONF_TYPE_INT, CONF_RANGE, -1, 10000, NULL},
|
|
||||||
+ {"allow-dangerous-playlist-parsing", &allow_playlist_parsing, CONF_TYPE_FLAG, 0, 0, 1, NULL},
|
|
||||||
+ {"noallow-dangerous-playlist-parsing", &allow_playlist_parsing, CONF_TYPE_FLAG, 0, 1, 0, NULL},
|
|
||||||
{"playlist", NULL, CONF_TYPE_STRING, CONF_NOCFG, 0, 0, NULL},
|
|
||||||
{"shuffle", NULL, CONF_TYPE_FLAG, CONF_NOCFG, 0, 0, NULL},
|
|
||||||
{"noshuffle", NULL, CONF_TYPE_FLAG, CONF_NOCFG, 0, 0, NULL},
|
|
||||||
Index: .
|
|
||||||
===================================================================
|
|
||||||
--- . (wersja 36241)
|
|
||||||
+++ . (wersja 36242)
|
|
||||||
|
|
||||||
Zmiany atrybutów dla: .
|
|
||||||
___________________________________________________________________
|
|
||||||
Added: svn:mergeinfo
|
|
||||||
Połączono zmiany /trunk:r36238-36241
|
|
@ -1,44 +0,0 @@
|
|||||||
Index: cpudetect.c
|
|
||||||
===================================================================
|
|
||||||
--- cpudetect.c (wersja 36298)
|
|
||||||
+++ cpudetect.c (wersja 36300)
|
|
||||||
@@ -56,7 +56,7 @@
|
|
||||||
#if CONFIG_RUNTIME_CPUDETECT
|
|
||||||
/* I believe this code works. However, it has only been used on a PII and PIII */
|
|
||||||
|
|
||||||
-#if defined(__linux__) && defined(_POSIX_SOURCE) && !ARCH_X86_64
|
|
||||||
+#if defined(__linux__) && !ARCH_X86_64
|
|
||||||
static void sigill_handler_sse( int signal, struct sigcontext sc )
|
|
||||||
{
|
|
||||||
mp_msg(MSGT_CPUDETECT,MSGL_V, "SIGILL, " );
|
|
||||||
@@ -75,7 +75,7 @@
|
|
||||||
|
|
||||||
gCpuCaps.hasSSE=0;
|
|
||||||
}
|
|
||||||
-#endif /* __linux__ && _POSIX_SOURCE */
|
|
||||||
+#endif /* __linux__ */
|
|
||||||
|
|
||||||
#if (defined(__MINGW32__) || defined(__CYGWIN__)) && !ARCH_X86_64
|
|
||||||
LONG CALLBACK win32_sig_handler_sse(EXCEPTION_POINTERS* ep)
|
|
||||||
@@ -177,7 +177,6 @@
|
|
||||||
mp_msg(MSGT_CPUDETECT,MSGL_V, gCpuCaps.hasSSE ? "yes.\n" : "no!\n" );
|
|
||||||
}
|
|
||||||
#elif defined(__linux__)
|
|
||||||
-#if defined(_POSIX_SOURCE)
|
|
||||||
struct sigaction saved_sigill;
|
|
||||||
|
|
||||||
/* Save the original signal handlers.
|
|
||||||
@@ -210,13 +209,6 @@
|
|
||||||
*/
|
|
||||||
mp_msg(MSGT_CPUDETECT,MSGL_V, "Tests of OS support for SSE %s\n", gCpuCaps.hasSSE ? "passed." : "failed!" );
|
|
||||||
#else
|
|
||||||
- /* We can't use POSIX signal handling to test the availability of
|
|
||||||
- * SSE, so we disable it by default.
|
|
||||||
- */
|
|
||||||
- mp_msg(MSGT_CPUDETECT,MSGL_WARN, "Cannot test OS support for SSE, disabling to be safe.\n" );
|
|
||||||
- gCpuCaps.hasSSE=0;
|
|
||||||
-#endif /* _POSIX_SOURCE */
|
|
||||||
-#else
|
|
||||||
/* Do nothing on other platforms for now.
|
|
||||||
*/
|
|
||||||
mp_msg(MSGT_CPUDETECT,MSGL_WARN, "Cannot test OS support for SSE, leaving disabled.\n" );
|
|
Loading…
Reference in new issue