summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.hgsigs1
-rw-r--r--.hgtags1
-rw-r--r--ChangeLog10
-rw-r--r--po/libxine2.pot18
-rw-r--r--src/combined/flac_demuxer.c3
-rw-r--r--src/combined/xine_ogg_demuxer.c8
-rw-r--r--src/demuxers/demux_flac.c4
-rw-r--r--src/demuxers/demux_flv.c1
-rw-r--r--src/demuxers/demux_mpgaudio.c4
-rw-r--r--src/input/input_v4l.c19
10 files changed, 57 insertions, 12 deletions
diff --git a/.hgsigs b/.hgsigs
index 528d1e655..367ce4851 100644
--- a/.hgsigs
+++ b/.hgsigs
@@ -2,3 +2,4 @@
42358e16442fe54fa554006e0b0bafd51e065c32 0 iD8DBQBG0xz0zbwfTn7RbcARAoD3AJ4012pabmpQvCKKDokZNyZzfPIbWgCfRk5FRly/Eei/xXnSaT54XHAT5KM=
1dbf784bebc791266fcca02e917ee63034ac2e0b 0 iD8DBQBHgQ2mzbwfTn7RbcARArl9AKCslqZDrrm0GiU3IbBvcQVbOdSXlwCgyEMuHY2y/+T6WEeB2CXvCTs5ulI=
b591d00fcd386cdd3779378c34b2d42b7504afc4 0 iD8DBQBHh5UfsBKtjPGfWZ8RAgvMAJ9xwnDNifmaobFYe2nR7+rJlLTkEQCgguGMqwqRZY68HWQXhEx918hp4Yg=
+ae1e23df14223cdacf83df75b28b223895d658c2 0 iD8DBQBHm6SjsBKtjPGfWZ8RAi8HAKDAHmmLu8rwN5XJJPhfEofE7BTpsgCfTyNzku+v/PhqXgl4kQnRiB6nUSE=
diff --git a/.hgtags b/.hgtags
index 8b9b6199b..6e05d9638 100644
--- a/.hgtags
+++ b/.hgtags
@@ -64,3 +64,4 @@ ab1531337553ad5eac24a69ac665eae33916b423 xine-lib-1_1_7-release
e0a332b9d3e8bb3fad4d7feac1e519292b062056 xine-lib-1_1_8-release
b6be674453e922114b55d4613cb197c77d19f094 xine-lib-1_1_9-release
9438947f88ad2bed1832385301c6b4e62709625a xine-lib-1_1_9_1-release
+7f1232425c6d715c404e6df1292075b33ecb8305 xine-lib-1_1_10-release
diff --git a/ChangeLog b/ChangeLog
index a13e43b4a..f8c894ea4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -56,7 +56,11 @@ xine-lib (1.1.90) (Unreleased)
active and thus it's no more usable. If you were using SyncFB somehow,
please use DirectFB or VIDIX instead.
-xine-lib (1.1.10) (unreleased)
+xine-lib (1.1.10) 2008-01-26
+ * Security fixes:
+ - Buffer overflow which allows a remote attacker to execute arbitrary
+ code or crash the client program via a crafted ASF header.
+ (Related to CVE-2006-1664)
* Update Ogg and Annodex mimetypes and extensions.
* Change the default v4l device paths to /dev/video0 and /dev/radio0.
* Fix support for subtitles with schemes (e.g. http://), partly broken
@@ -66,10 +70,10 @@ xine-lib (1.1.10) (unreleased)
end authors should be careful with xine-lib older than 1.1.10.
* Backported xine-config & libxine.pc from 1.2.
Consequently, xine-config now requires pkg-config.
- * Sanity-check ASF header sizes. This fixes a crash in the ASF demuxer,
- caused by the example exploit given for CVE-2006-1664.
* Don't discard audio samples forever. Fixed streaming playback.
* Fix a possible crash on channel change in the DVB plugin.
+ * Flash video demuxer improvements and bug fixes.
+ * Make the V4L ALSA audio input device configurable. (This needs more work.)
xine-lib (1.1.9.1) 2008-01-11
* Security fixes:
diff --git a/po/libxine2.pot b/po/libxine2.pot
index 9c05b9045..abf0bda62 100644
--- a/po/libxine2.pot
+++ b/po/libxine2.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: xine-devel@lists.sourceforge.net\n"
-"POT-Creation-Date: 2008-01-06 21:08+0000\n"
+"POT-Creation-Date: 2008-01-26 23:28+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -2020,6 +2020,16 @@ msgid ""
"Selects the TV standard of the input signals. Either: PAL, NTSC and SECAM. "
msgstr ""
+#: src/input/input_v4l.c:1941
+msgid "v4l ALSA audio input device"
+msgstr ""
+
+#: src/input/input_v4l.c:1942
+msgid ""
+"The name of the audio device which corresponds to your Video4Linux video "
+"device."
+msgstr ""
+
#: src/input/input_v4l.c:1946
msgid "v4l radio input plugin"
msgstr ""
@@ -2084,6 +2094,12 @@ msgstr ""
msgid "rtsp_session: session can not be established.\n"
msgstr ""
+#: src/input/librtsp/rtsp_session.c:153
+msgid ""
+"rtsp_session: rtsp server returned overly-large headers, session can not be "
+"established.\n"
+msgstr ""
+
#: src/input/librtsp/rtsp_session.c:159
#, c-format
msgid "rtsp_session: rtsp server type '%s' not supported yet. sorry.\n"
diff --git a/src/combined/flac_demuxer.c b/src/combined/flac_demuxer.c
index bab42876c..22ee2319b 100644
--- a/src/combined/flac_demuxer.c
+++ b/src/combined/flac_demuxer.c
@@ -713,7 +713,8 @@ demux_flac_init_class (xine_t *xine, void *data) {
this->demux_class.open_plugin = open_plugin;
this->demux_class.description = N_("FLAC demux plugin");
this->demux_class.identifier = "FLAC";
- this->demux_class.mimetypes = "application/x-flac: flac: FLAC Audio;";
+ this->demux_class.mimetypes = "application/x-flac: flac: FLAC Audio;"
+ "application/flac: flac: FLAC Audio;";
this->demux_class.extensions = "flac";
this->demux_class.dispose = default_demux_class_dispose;
diff --git a/src/combined/xine_ogg_demuxer.c b/src/combined/xine_ogg_demuxer.c
index e0610f5ca..b09bc1a41 100644
--- a/src/combined/xine_ogg_demuxer.c
+++ b/src/combined/xine_ogg_demuxer.c
@@ -2081,8 +2081,11 @@ static void *anx_init_class (xine_t *xine, void *data) {
this->demux_class.identifier = "Annodex";
this->demux_class.mimetypes =
"application/annodex: anx: Annodex media;"
+ "application/x-annodex: anx: Annodex media;"
"audio/annodex: axa: Annodex audio;"
- "video/annodex: axv: Annodex video;";
+ "audio/x-annodex: axa: Annodex audio;"
+ "video/annodex: axv: Annodex video;"
+ "video/x-annodex: axv: Annodex video;";
this->demux_class.extensions = "anx axa axv";
this->demux_class.dispose = default_demux_class_dispose;
@@ -2102,8 +2105,11 @@ static void *ogg_init_class (xine_t *xine, void *data) {
this->demux_class.identifier = "OGG";
this->demux_class.mimetypes =
"application/ogg: ogx: Ogg Stream;"
+ "application/x-ogg: ogx: Ogg Stream;"
"audio/ogg: oga: Ogg Audio;"
+ "audio/x-ogg: oga: Ogg Audio;"
"video/ogg: ogv: Ogg Video;";
+ "video/x-ogg: ogv: Ogg Video;";
this->demux_class.extensions = "ogx ogv oga ogg spx ogm";
this->demux_class.dispose = default_demux_class_dispose;
diff --git a/src/demuxers/demux_flac.c b/src/demuxers/demux_flac.c
index b4c5427c5..40cd5d265 100644
--- a/src/demuxers/demux_flac.c
+++ b/src/demuxers/demux_flac.c
@@ -520,7 +520,9 @@ void *demux_flac_init_plugin (xine_t *xine, void *data) {
this->demux_class.open_plugin = open_plugin;
this->demux_class.description = N_("Free Lossless Audio Codec (flac) demux plugin");
this->demux_class.identifier = "FLAC";
- this->demux_class.mimetypes = NULL;
+ this->demux_class.mimetypes =
+ "audio/x-flac: flac: FLAC Audio;"
+ "audio/flac: flac: FLAC Audio;";
this->demux_class.extensions = "flac";
this->demux_class.dispose = default_demux_class_dispose;
diff --git a/src/demuxers/demux_flv.c b/src/demuxers/demux_flv.c
index a65702207..38855c027 100644
--- a/src/demuxers/demux_flv.c
+++ b/src/demuxers/demux_flv.c
@@ -908,4 +908,3 @@ const plugin_info_t xine_plugin_info[] EXPORTED = {
{ PLUGIN_DEMUX, 27, "flashvideo", XINE_VERSION_CODE, &demux_info_flv, init_plugin },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
-
diff --git a/src/demuxers/demux_mpgaudio.c b/src/demuxers/demux_mpgaudio.c
index cf410eed8..79da40e36 100644
--- a/src/demuxers/demux_mpgaudio.c
+++ b/src/demuxers/demux_mpgaudio.c
@@ -591,14 +591,14 @@ static int parse_frame_payload(demux_mpgaudio_t *this,
if (this->xing_header) {
buf->free_buffer(buf);
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- LOG_MODULE ": found Xing header at offset %PRId64\n", frame_pos);
+ LOG_MODULE ": found Xing header at offset %"PRId64"\n", frame_pos);
return 1;
}
this->vbri_header = parse_vbri_header(&this->cur_frame, buf->content, this->cur_frame.size);
if (this->vbri_header) {
buf->free_buffer(buf);
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
- LOG_MODULE ": found Vbri header at offset %PRId64\n", frame_pos);
+ LOG_MODULE ": found Vbri header at offset %"PRId64"\n", frame_pos);
return 1;
}
}
diff --git a/src/input/input_v4l.c b/src/input/input_v4l.c
index a8f387b3d..df0e0e48b 100644
--- a/src/input/input_v4l.c
+++ b/src/input/input_v4l.c
@@ -116,6 +116,9 @@ static const int tv_standard_values[] = { VIDEO_MODE_PAL, VIDEO_MODE_NTSC, VIDEO
#define NUM_RESOLUTIONS (sizeof(resolutions)/sizeof(resolutions[0]))
#define RADIO_DEV "/dev/radio0"
#define VIDEO_DEV "/dev/video0"
+#ifdef HAVE_ALSA
+#define AUDIO_DEV "plughw:0,0"
+#endif
#if !defined(NDELAY) && defined(O_NDELAY)
#define FNDELAY O_NDELAY
@@ -1732,6 +1735,9 @@ static input_plugin_t *v4l_class_get_instance (input_class_t *cls_gen,
{
/* v4l_input_class_t *cls = (v4l_input_class_t *) cls_gen; */
v4l_input_plugin_t *this;
+#ifdef HAVE_ALSA
+ cfg_entry_t *entry;
+#endif
char *mrl = strdup(data);
/* Example mrl: v4l:/Television/62500 */
@@ -1752,13 +1758,14 @@ static input_plugin_t *v4l_class_get_instance (input_class_t *cls_gen,
this->event_queue = NULL;
this->scr = NULL;
#ifdef HAVE_ALSA
- this->pcm_name = NULL;
this->pcm_data = NULL;
this->pcm_hwparams = NULL;
/* Audio */
this->pcm_stream = SND_PCM_STREAM_CAPTURE;
- this->pcm_name = strdup("plughw:0,0");
+ entry = this->stream->xine->config->lookup_entry(this->stream->xine->config,
+ "media.video4linux.audio_device");
+ this->pcm_name = strdup (entry->str_value);
this->audio_capture = 1;
#endif
this->rate = 44100;
@@ -1928,6 +1935,14 @@ static void *init_video_class (xine_t *xine, void *data)
_("Selects the TV standard of the input signals. "
"Either: PAL, NTSC and SECAM. "), 20, NULL, NULL);
+#ifdef HAVE_ALSA
+ config->register_filename (config, "media.video4linux.audio_device",
+ AUDIO_DEV, 0,
+ _("v4l ALSA audio input device"),
+ _("The name of the audio device which corresponds "
+ "to your Video4Linux video device."),
+ 10, NULL, NULL);
+#endif
return this;
}