Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2018-10-16T06:39:31Zhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2340authentication subsystem should allow the user to send a custom error2018-10-16T06:39:31ZPhilipp Schafftauthentication subsystem should allow the user to send a custom errorThe authentication subsystem should to send a custom error in case of negative match (deny).
The error to return should be selected by it's report XML UUID.
Example config would look like this:
```xml
<authentication>
<role type="a...The authentication subsystem should to send a custom error in case of negative match (deny).
The error to return should be selected by it's report XML UUID.
Example config would look like this:
```xml
<authentication>
<role type="anonymous" deny-all="*" reject-with="f955b6c6-aaca-4734-aacc-67d86bf83c3b" />
</authentication>
```
This would also be in-line with `AUTH_ALTER_SEND_ERROR`.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/opus-tools/-/issues/2274src/picture.c:465]: (error) Resource leak: picture_file2018-10-16T04:09:21ZDavid Bindermansrc/picture.c:465]: (error) Resource leak: picture_fileSource code is
free(buf);
*error_message="pictures of type 1 MUST be 32x32 PNGs";
return NULL;
Also:
src/picture.c:498]: (error) Resource leak: picture_file
Source code is
free(buf);
*error_message="pictures of type 1 MUST be 32x32 PNGs";
return NULL;
Also:
src/picture.c:498]: (error) Resource leak: picture_file
Mark HarrisMark Harrishttps://gitlab.xiph.org/xiph/opus-tools/-/issues/2165malformed opus file causes memory leak in opusdec2018-10-16T04:05:53Zhannomalformed opus file causes memory leak in opusdecThe attached file will cause several memory leaks in opusdec.
Found with the help of american fuzzy lop and clang's leak sanitizer:
```
==6060==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 27264 byte(s) in 1 object(s) al...The attached file will cause several memory leaks in opusdec.
Found with the help of american fuzzy lop and clang's leak sanitizer:
```
==6060==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 27264 byte(s) in 1 object(s) allocated from:
#0 0x7f66bb13925b in __interceptor_malloc (/mnt/ram/opus-1.1/opus-tools-0.1.9/opusdec+0xb625b)
#1 0x7f66baabe2e8 in opus_alloc /mnt/ram/opus-1.1/./celt/os_support.h:49:11
#2 0x7f66baabda22 in opus_multistream_decoder_create /mnt/ram/opus-1.1/src/opus_multistream_decoder.c:128:26
#3 0x7f66bb17e962 in process_header /mnt/ram/opus-1.1/opus-tools-0.1.9/src/opusdec.c:514:9
#4 0x7f66bb1763cf in main /mnt/ram/opus-1.1/opus-tools-0.1.9/src/opusdec.c:911:21
#5 0x7f66b922cf9f in __libc_start_main /var/tmp/portage/sys-libs/glibc-2.20-r1/work/glibc-2.20/csu/libc-start.c:289
Direct leak of 128 byte(s) in 1 object(s) allocated from:
#0 0x7f66bb1393b0 in calloc (/mnt/ram/opus-1.1/opus-tools-0.1.9/opusdec+0xb63b0)
#1 0x7f66bb186c39 in speex_alloc /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:68:45
#2 0x7f66bb183dd3 in opustools_resampler_init_frac /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:745:32
#3 0x7f66bb18364e in opustools_resampler_init /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:732:11
#4 0x7f66bb176ebd in main /mnt/ram/opus-1.1/opus-tools-0.1.9/src/opusdec.c:945:31
#5 0x7f66b922cf9f in __libc_start_main /var/tmp/portage/sys-libs/glibc-2.20-r1/work/glibc-2.20/csu/libc-start.c:289
Indirect leak of 51744 byte(s) in 1 object(s) allocated from:
#0 0x7f66bb1393b0 in calloc (/mnt/ram/opus-1.1/opus-tools-0.1.9/opusdec+0xb63b0)
#1 0x7f66bb186c39 in speex_alloc /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:68:45
#2 0x7f66bb18f375 in update_filter /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:598:43
#3 0x7f66bb186714 in opustools_resampler_init_frac /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:785:4
#4 0x7f66bb18364e in opustools_resampler_init /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:732:11
#5 0x7f66bb176ebd in main /mnt/ram/opus-1.1/opus-tools-0.1.9/src/opusdec.c:945:31
#6 0x7f66b922cf9f in __libc_start_main /var/tmp/portage/sys-libs/glibc-2.20-r1/work/glibc-2.20/csu/libc-start.c:289
Indirect leak of 1976 byte(s) in 1 object(s) allocated from:
#0 0x7f66bb1393b0 in calloc (/mnt/ram/opus-1.1/opus-tools-0.1.9/opusdec+0xb63b0)
#1 0x7f66bb186c39 in speex_alloc /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:68:45
#2 0x7f66bb1958f6 in update_filter /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:653:32
#3 0x7f66bb186714 in opustools_resampler_init_frac /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:785:4
#4 0x7f66bb18364e in opustools_resampler_init /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:732:11
#5 0x7f66bb176ebd in main /mnt/ram/opus-1.1/opus-tools-0.1.9/src/opusdec.c:945:31
#6 0x7f66b922cf9f in __libc_start_main /var/tmp/portage/sys-libs/glibc-2.20-r1/work/glibc-2.20/csu/libc-start.c:289
Indirect leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7f66bb1393b0 in calloc (/mnt/ram/opus-1.1/opus-tools-0.1.9/opusdec+0xb63b0)
#1 0x7f66bb186c39 in speex_alloc /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:68:45
#2 0x7f66bb1856cb in opustools_resampler_init_frac /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:771:36
#3 0x7f66bb18364e in opustools_resampler_init /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:732:11
#4 0x7f66bb176ebd in main /mnt/ram/opus-1.1/opus-tools-0.1.9/src/opusdec.c:945:31
#5 0x7f66b922cf9f in __libc_start_main /var/tmp/portage/sys-libs/glibc-2.20-r1/work/glibc-2.20/csu/libc-start.c:289
Indirect leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7f66bb1393b0 in calloc (/mnt/ram/opus-1.1/opus-tools-0.1.9/opusdec+0xb63b0)
#1 0x7f66bb186c39 in speex_alloc /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:68:45
#2 0x7f66bb185886 in opustools_resampler_init_frac /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:772:39
#3 0x7f66bb18364e in opustools_resampler_init /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:732:11
#4 0x7f66bb176ebd in main /mnt/ram/opus-1.1/opus-tools-0.1.9/src/opusdec.c:945:31
#5 0x7f66b922cf9f in __libc_start_main /var/tmp/portage/sys-libs/glibc-2.20-r1/work/glibc-2.20/csu/libc-start.c:289
Indirect leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7f66bb1393b0 in calloc (/mnt/ram/opus-1.1/opus-tools-0.1.9/opusdec+0xb63b0)
#1 0x7f66bb186c39 in speex_alloc /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:68:45
#2 0x7f66bb185a41 in opustools_resampler_init_frac /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:773:39
#3 0x7f66bb18364e in opustools_resampler_init /mnt/ram/opus-1.1/opus-tools-0.1.9/src/resample.c:732:11
#4 0x7f66bb176ebd in main /mnt/ram/opus-1.1/opus-tools-0.1.9/src/opusdec.c:945:31
#5 0x7f66b922cf9f in __libc_start_main /var/tmp/portage/sys-libs/glibc-2.20-r1/work/glibc-2.20/csu/libc-start.c:289
```Mark HarrisMark Harrishttps://gitlab.xiph.org/xiph/opus/-/issues/2316Assert in celt_decoder when custom modes are disabled2018-10-12T10:17:30ZPhilippe NormandAssert in celt_decoder when custom modes are disabledI can't reproduce this issue outside of WebKit unfortunately. With a libopus built with `--enable-custom-modes=no`, open a youtube video (make sure MediaSource webkit websetting is turned on).
```
Fatal (internal) error in /home/phil/We...I can't reproduce this issue outside of WebKit unfortunately. With a libopus built with `--enable-custom-modes=no`, open a youtube video (make sure MediaSource webkit websetting is turned on).
```
Fatal (internal) error in /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/libopus-1.3-rc2/celt/celt_decoder.c, line 118: assertion failed: st->mode == opus_custom_mode_create(48000, 960, NULL)
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007f54bd4e82f1 in __GI_abort () at abort.c:79
#2 0x00007f545143e81f in celt_fatal () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/libopus-1.3-rc2/celt/arch.h:76
#3 0x00007f5451446a65 in validate_celt_decoder () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/libopus-1.3-rc2/celt/celt_decoder.c:118
#4 0x00007f5451446b84 in celt_decode_with_ec () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/libopus-1.3-rc2/celt/celt_decoder.c:867
#5 0x00007f545146d7bf in opus_decode_frame () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/libopus-1.3-rc2/src/opus_decoder.c:518
#6 0x00007f545146eb16 in opus_decode_native () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/libopus-1.3-rc2/src/opus_decoder.c:721
#7 0x00007f545147810a in opus_multistream_decode_native () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/libopus-1.3-rc2/src/opus_multistream_decoder.c:253
#8 0x00007f54514784b9 in opus_multistream_decode () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/libopus-1.3-rc2/src/opus_multistream_decoder.c:398
#9 0x00007f545275c134 in opus_dec_chain_parse_data () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gst-plugins-base-1.14.4/ext/opus/gstopusdec.c:630
#10 0x00007f545275d5b3 in gst_opus_dec_handle_frame () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gst-plugins-base-1.14.4/ext/opus/gstopusdec.c:908
#11 0x00007f54bf915dc9 in gst_audio_decoder_push_buffers () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gst-plugins-base-1.14.4/gst-libs/gst/audio/gstaudiodecoder.c:1540
#12 0x00007f54bf91615b in gst_audio_decoder_chain_forward () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gst-plugins-base-1.14.4/gst-libs/gst/audio/gstaudiodecoder.c:1654
#13 0x00007f54bf917377 in gst_audio_decoder_chain () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gst-plugins-base-1.14.4/gst-libs/gst/audio/gstaudiodecoder.c:1914
#14 0x00007f54bfa0daba in gst_pad_chain_data_unchecked () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstpad.c:4322
#15 gst_pad_push_data () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstpad.c:4578
#16 0x00007f54bfa15c32 in gst_pad_push () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstpad.c:4697
#17 0x00007f54bfa0daba in gst_pad_chain_data_unchecked () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstpad.c:4322
#18 gst_pad_push_data () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstpad.c:4578
#19 0x00007f54bfa15c32 in gst_pad_push () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstpad.c:4697
#20 0x00007f54bf9fbcbb in gst_proxy_pad_chain_default () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstghostpad.c:127
#21 0x00007f54bfa0daba in gst_pad_chain_data_unchecked () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstpad.c:4322
#22 gst_pad_push_data () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstpad.c:4578
#23 0x00007f54bfa15c32 in gst_pad_push () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstpad.c:4697
#24 0x00007f54bf9fbcbb in gst_proxy_pad_chain_default () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstghostpad.c:127
#25 0x00007f54c69d892b in webkitMediaSrcChain(_GstPad*, _GstObject*, _GstBuffer*) () from /home/phil/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#26 0x00007f54bfa0daba in gst_pad_chain_data_unchecked () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstpad.c:4322
#27 gst_pad_push_data () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstpad.c:4578
#28 0x00007f54bfa15c32 in gst_pad_push () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gstpad.c:4697
#29 0x00007f54bfb13485 in gst_base_src_loop () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/libs/gst/base/gstbasesrc.c:2957
#30 0x00007f54bfa41cb1 in gst_task_func () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/gstreamer-1.14.4/gst/gsttask.c:332
#31 0x00007f54beb78933 in g_thread_pool_thread_proxy () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.54.2/glib/gthreadpool.c:307
#32 0x00007f54beb77fd5 in g_thread_proxy () at /home/phil/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.54.2/glib/gthread.c:784
#33 0x00007f54c06edf2a in start_thread (arg=0x7f54537fe700) at pthread_create.c:463
#34 0x00007f54bd5a8edf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
```
I don't understand this assert, pointer comparison doesn't make much sense to me in this context.https://gitlab.xiph.org/xiph/icecast-common/-/issues/2Namespace assignment2018-10-12T08:50:38ZPhilipp SchafftNamespace assignmentThis subproject should be assigned a namespace for exported symbols and constants. This is closely related to #1.This subproject should be assigned a namespace for exported symbols and constants. This is closely related to #1.https://gitlab.xiph.org/xiph/icecast-ices/-/issues/2321ices2.0.2 example config missing <yp>2018-10-09T21:06:17ZWaitman Gobbleices2.0.2 example config missing <yp>It would be helpful to have <yp> option and comment in conf/ices-playlist.xml example which ships with 2.0.2.
thanks.It would be helpful to have <yp> option and comment in conf/ices-playlist.xml example which ships with 2.0.2.
thanks.Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-ices/-/issues/2040Low cpu usage with stdinpcm compared with alsa2018-10-05T08:40:13Zrajil.sLow cpu usage with stdinpcm compared with alsaI am using ices on a Raspberry Pi B+ model running raspbian. The audio is being fed through the attached usb radio tuner card.
#lsusb
Bus 001 Device 004: ID 06e1:a155 ADS Technologies, Inc. FM Radio Receiver/Instant FM Music (RDX-155-EF...I am using ices on a Raspberry Pi B+ model running raspbian. The audio is being fed through the attached usb radio tuner card.
#lsusb
Bus 001 Device 004: ID 06e1:a155 ADS Technologies, Inc. FM Radio Receiver/Instant FM Music (RDX-155-EF)
If i use alsa arecord and pipe to ices, the cpu usage is about 70%
arecord -D plughw:1 -r 48000 -c 2 -f S16_LE |ices2 /home/pi/ices-stdin.xml
However, if i use alsa directly within ices then the CPU shoots upto 100%
ICES version 2.0.1Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2126listener_remove is not triggered when kicking users2018-10-04T11:08:04ZMarius Flagelistener_remove is not triggered when kicking usersWhen kicking users, listener_remove isn't triggered. This has been tested on Icecast 2.3.3.
I haven't tested if this works if you remove a mount point, but one would like the same functionality here, that listener_remove is triggered as...When kicking users, listener_remove isn't triggered. This has been tested on Icecast 2.3.3.
I haven't tested if this works if you remove a mount point, but one would like the same functionality here, that listener_remove is triggered as well. I use these triggers to update a database with listeners and to make sure I have consistency, it would be nice if both triggers (listener_add and listener_remove) were triggered whatever causes a listener to be added and removed.Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2104Check: Bytes sent and time listening might be broken?2018-10-04T10:54:41ZMarvin ScholzCheck: Bytes sent and time listening might be broken?> logging - bytes send and time listening may both be broken?
As mentioned in the TODO file, we should check this.
> logging - bytes send and time listening may both be broken?
As mentioned in the TODO file, we should check this.
Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2111Race condition in fserv.c?2018-10-04T10:53:27ZMarvin ScholzRace condition in fserv.c?>race condition between avl_tree_unlock(pending_tree) and
>thread_cond_wait(&fserv_cond) in fserv.c, it's a pain to fix but should be.
Found in the TODO, still relevant?>race condition between avl_tree_unlock(pending_tree) and
>thread_cond_wait(&fserv_cond) in fserv.c, it's a pain to fix but should be.
Found in the TODO, still relevant?Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2130Add POST support to admin requests2018-10-04T10:42:35ZMarvin ScholzAdd POST support to admin requestsDue to how web stuff works and the web interface handles things (auth managements for instance) it is mandatory that we support POST, for properly sending data to the server.
(Just one downside of GET that already should be enough is th...Due to how web stuff works and the web interface handles things (auth managements for instance) it is mandatory that we support POST, for properly sending data to the server.
(Just one downside of GET that already should be enough is that the password would be in cleartext in the browser history)Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2080Limit/Filter access types available through a listener socket2018-10-02T08:29:07ZThomas B. RückerLimit/Filter access types available through a listener socketOne thing that might be worth considering is to add another setting to listener sockets that would limit which requests are handled on that port.
Listener clients, POST/sources, admin, STATS, XSLT, static files - come to mind.
Especial...One thing that might be worth considering is to add another setting to listener sockets that would limit which requests are handled on that port.
Listener clients, POST/sources, admin, STATS, XSLT, static files - come to mind.
Especially in case of professional installations there is often the desire to limit exposure to potential attacks to a minimum.
That way there could be a listener client port on public IP, while all advanced functionality would only be available on a firewalled IP/port.Icecast 2.5.0Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2192URL auth: override status code and send custom headers2018-09-28T15:04:52ZThomas B. RückerURL auth: override status code and send custom headersCurrently we're hardcoded to 401, if the backend refuses authentication. 403 might also be desireable or 30x with a _location_ header.
This needs two things:
* capability to set a custom status (including message)
* capability to send...Currently we're hardcoded to 401, if the backend refuses authentication. 403 might also be desireable or 30x with a _location_ header.
This needs two things:
* capability to set a custom status (including message)
* capability to send headers that will be forwarded to the client
The latter can also be used to set cookies, so is useful by itself.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2225Make listen backlog customizable2018-09-28T14:05:00ZMarvin ScholzMake listen backlog customizableExcerpt from a mail we got on the list:
On 02/19/2015 03:07 PM, Stephan Leemburg wrote:
> I am working for the NPO, the Dutch Public Broadcasting agency.
>
> We do a lot of icecast streaming. We run at least 20 icecast server
> instanc...Excerpt from a mail we got on the list:
On 02/19/2015 03:07 PM, Stephan Leemburg wrote:
> I am working for the NPO, the Dutch Public Broadcasting agency.
>
> We do a lot of icecast streaming. We run at least 20 icecast server
> instances on our media streaming cluster. [...]
>
> We ran into an issue that clients which where connecting to our streams
> seemed to be 'hanging' on the connection setup frequently. The client
> 'thinks' it is connected, but no data.
>
> People suggested that it probably had to do with the poll() call. So, I
> looked into that.
>
> I found that the issue was actually caused by the very low listen
> backlog (5).
> On our clusters, we typically set this to 8192. Yes it is high, but we
> do a _lot_ of streaming and host very high volume websites.
Attached are the submitted patches for 2.4, 2.5 and 2.3.3
Icecast 2.5.0Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2339After logrotate Icecast not using new access.log and error.log files2018-09-28T13:24:06ZDoug TinklenbergAfter logrotate Icecast not using new access.log and error.log filesThe logrotate postrotate command is this for Icecast: */bin/kill -HUP `cat /var/run/icecast/icecast.pid 2>/dev/null` 2> /dev/null || true*
The Icecast installation doesn't create the icecast folder in /var/run so there is no icecast.p...The logrotate postrotate command is this for Icecast: */bin/kill -HUP `cat /var/run/icecast/icecast.pid 2>/dev/null` 2> /dev/null || true*
The Icecast installation doesn't create the icecast folder in /var/run so there is no icecast.pid file.
So what's happening is that after a logrotate the Icecast service continues to use the access.log-date file rather then the new access.log file that is created during the logrotate. The only way to get it to use the new log files is to restart the icecast service.
Why is the logrotate command trying to kill a pid file that doesn't exist and is there another postrotate command that should be used instead.https://gitlab.xiph.org/xiph/icecast-server/-/issues/2329Config file using url auth causes SIGILL on SIGHUP2018-09-28T13:17:37ZMarvin ScholzConfig file using url auth causes SIGILL on SIGHUPReported by spr0cketeer on 21 Nov 2017 (Github):
Hello icecasters!
Using icecast master cd0a3f9
getting a SIGILL when sending a SIGHUP to reread config file.
Only happens when using url auth:
```
<mount> ...Reported by spr0cketeer on 21 Nov 2017 (Github):
Hello icecasters!
Using icecast master cd0a3f9
getting a SIGILL when sending a SIGHUP to reread config file.
Only happens when using url auth:
```
<mount>
<mount-name>/test</mount-name>
<authentication type="url">
<option name="listener_add" value="http://example.com/auth"/>
</authentication>
</mount>
```
Server is running on haswell architecture - related: karlheyes/icecast-kh#157
```
Thread 1 "icecast" received signal SIGHUP, Hangup.
[2017-11-20 23:02:55] INFO sighandler/_sig_hup Caught signal 1, scheduling config re-read...
[2017-11-20 23:02:55] INFO auth_url/auth_get_url_auth URL based authentication setup
[New Thread 0x7fffeebd4700 (LWP 9495)]
[2017-11-20 23:02:55] INFO auth/auth_run_thread Authentication thread started
[2017-11-20 23:02:55] WARN CONFIG/__check_hostname Warning, <hostname> not configured, using default value "localhost". This will cause problems, e.g. this breaks YP directory listings. YP directory listing support will be disabled.
[2017-11-20 23:02:55] WARN CONFIG/_parse_root Warning, <location> not configured, using default value "Earth".
[2017-11-20 23:02:55] WARN CONFIG/_parse_root Warning, <admin> contact not configured, using default value "icemaster@localhost". This breaks YP directory listings. YP directory support will be disabled.
[2017-11-20 23:02:55] INFO auth/auth_run_thread Authentication thread shutting down
[2017-11-20 23:02:55] INFO auth_url/auth_url_clear Doing auth URL cleanup
[2017-11-20 23:02:55] INFO connection/get_tls_certificate No TLS capability on any configured ports
[Thread 0x7ffff7fba700 (LWP 8767) exited]
Thread 5 "icecast" received signal SIGILL, Illegal instruction.
[Switching to Thread 0x7fffeecd6700 (LWP 8770)]
__GI___pthread_rwlock_unlock (rwlock=rwlock@entry=0x642800 <_locks>) at pthread_rwlock_unlock.c:38
38 pthread_rwlock_unlock.c: No such file or directory.
(gdb) bt
#0 __GI___pthread_rwlock_unlock (rwlock=rwlock@entry=0x642800 <_locks>) at pthread_rwlock_unlock.c:38
#1 0x000000000042ac25 in thread_rwlock_unlock_c (rwlock=rwlock@entry=0x642800 <_locks>, line=line@entry=754, file=file@entry=0x42fe9f "cfgfile.c") at thread.c:568
#2 0x000000000040b66c in config_release_config () at cfgfile.c:754
#3 config_reread_config () at cfgfile.c:701
#4 0x0000000000411025 in _slave_thread (arg=arg@entry=0x0) at slave.c:751
#5 0x000000000042a6cd in _start_routine (arg=0x68d2b0) at thread.c:669
#6 0x00007ffff68546ba in start_thread (arg=0x7fffeecd6700) at pthread_create.c:333
#7 0x00007ffff658a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
(gdb) thread apply all bt
Thread 7 (Thread 0x7fffeebd4700 (LWP 9495)):
#0 0x00007ffff685dc1d in nanosleep () at ../sysdeps/unix/syscall-template.S:84
#1 0x000000000042ac86 in thread_sleep (len=len@entry=150000) at thread.c:626
#2 0x000000000042304a in auth_run_thread (arg=arg@entry=0x7fffd800b490) at auth.c:359
#3 0x000000000042a6cd in _start_routine (arg=0x7fffd800bce0) at thread.c:669
#4 0x00007ffff68546ba in start_thread (arg=0x7fffeebd4700) at pthread_create.c:333
#5 0x00007ffff658a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 6 (Thread 0x7fffeec55700 (LWP 8771)):
#0 0x00007ffff685dc1d in nanosleep () at ../sysdeps/unix/syscall-template.S:84
#1 0x000000000042ac86 in thread_sleep (len=len@entry=150000) at thread.c:626
#2 0x0000000000421183 in event_run_thread (arg=arg@entry=0x0) at event.c:174
#3 0x000000000042a6cd in _start_routine (arg=0x68d2b0) at thread.c:669
#4 0x00007ffff68546ba in start_thread (arg=0x7fffeec55700) at pthread_create.c:333
#5 0x00007ffff658a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 5 (Thread 0x7fffeecd6700 (LWP 8770)):
#0 __GI___pthread_rwlock_unlock (rwlock=rwlock@entry=0x642800 <_locks>) at pthread_rwlock_unlock.c:38
#1 0x000000000042ac25 in thread_rwlock_unlock_c (rwlock=rwlock@entry=0x642800 <_locks>, line=line@entry=754, file=file@entry=0x42fe9f "cfgfile.c") at thread.c:568
#2 0x000000000040b66c in config_release_config () at cfgfile.c:754
#3 config_reread_config () at cfgfile.c:701
#4 0x0000000000411025 in _slave_thread (arg=arg@entry=0x0) at slave.c:751
#5 0x000000000042a6cd in _start_routine (arg=0x68d2b0) at thread.c:669
#6 0x00007ffff68546ba in start_thread (arg=0x7fffeecd6700) at pthread_create.c:333
#7 0x00007ffff658a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 4 (Thread 0x7ffff7eb8700 (LWP 8769)):
#0 0x00007ffff685dc1d in nanosleep () at ../sysdeps/unix/syscall-template.S:84
#1 0x000000000042ac86 in thread_sleep (len=len@entry=200000) at thread.c:626
#2 0x0000000000428afd in yp_update_thread (arg=arg@entry=0x0) at yp.c:732
#3 0x000000000042a6cd in _start_routine (arg=0x68d2b0) at thread.c:669
#4 0x00007ffff68546ba in start_thread (arg=0x7ffff7eb8700) at pthread_create.c:333
#5 0x00007ffff658a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 3 (Thread 0x7ffff7f39700 (LWP 8768)):
#0 0x00007ffff685dc1d in nanosleep () at ../sysdeps/unix/syscall-template.S:84
#1 0x000000000042ac86 in thread_sleep (len=len@entry=300000) at thread.c:626
#2 0x000000000041556e in _stats_thread (arg=arg@entry=0x0) at stats.c:737
#3 0x000000000042a6cd in _start_routine (arg=0x68f160) at thread.c:669
#4 0x00007ffff68546ba in start_thread (arg=0x7ffff7f39700) at pthread_create.c:333
#5 0x00007ffff658a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Thread 1 (Thread 0x7ffff7fbc740 (LWP 8763)):
#0 0x00007ffff657e70d in poll () at ../sysdeps/unix/syscall-template.S:84
#1 0x000000000040c6ee in poll (__timeout=300, __nfds=<optimised out>, __fds=0x7fffffffa450) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
#2 wait_for_serversock (timeout=300) at connection.c:302
#3 _accept_connection (duration=300) at connection.c:371
#4 connection_accept_loop () at connection.c:616
#5 0x000000000040685a in _server_proc () at main.c:356
#6 main (argc=<optimised out>, argv=<optimised out>) at main.c:601
```https://gitlab.xiph.org/xiph/rav1e/-/issues/44Add partition splitting to RDO2018-09-23T17:20:12ZThomas DaedeAdd partition splitting to RDO*Created by: tmatth*
Currently in `encode_tile` for every superblock, we search for the intra mode with the best RD (based on a 64x64 SSE), for PARTITION_NONE. We should extend this search to one-level of split.*Created by: tmatth*
Currently in `encode_tile` for every superblock, we search for the intra mode with the best RD (based on a 64x64 SSE), for PARTITION_NONE. We should extend this search to one-level of split.https://gitlab.xiph.org/xiph/rav1e/-/issues/37Decoded output not cropped for non-integer multiple of SB size input2018-09-23T17:19:02ZThomas DaedeDecoded output not cropped for non-integer multiple of SB size input*Created by: tmatth*
To reproduce, encode akiyo_qcif.y4m. (176x144)
Reconstructed output:
![rec](https://user-images.githubusercontent.com/66862/35865560-d79ed2d6-0b22-11e8-9a1d-2122a8d6b961.png)
Decoded output:
![dec](https://u...*Created by: tmatth*
To reproduce, encode akiyo_qcif.y4m. (176x144)
Reconstructed output:
![rec](https://user-images.githubusercontent.com/66862/35865560-d79ed2d6-0b22-11e8-9a1d-2122a8d6b961.png)
Decoded output:
![dec](https://user-images.githubusercontent.com/66862/35865582-e48b5ea6-0b22-11e8-91a0-25a18e2dde8b.png)
We need to skip non-visible blocks in `write_sb` (done), change the dimensions that we write in `write_uncompressed_header` (done), change how partitions are coded on the edges of the frame (not started), ~~get all sizes of intra-predictors~~ (not needed since we force 4x4 everywhere).https://gitlab.xiph.org/xiph/vorbis-tools/-/issues/2322Uncontrolled alloca() in oggenc which may lead to a remote code execution in ...2018-09-17T19:57:06ZJaeseung ChoiUncontrolled alloca() in oggenc which may lead to a remote code execution in 32-bit environmentDuring a fuzz testing, I found a program-crashing bug in the latest version of `oggenc`. When a malicious AIFF audio file is provided as an input, segmentation fault or remote code execution may occur.
I downloaded http://downloads.xiph...During a fuzz testing, I found a program-crashing bug in the latest version of `oggenc`. When a malicious AIFF audio file is provided as an input, segmentation fault or remote code execution may occur.
I downloaded http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.4.0.tar.gz file, and compiled it with clang 3.8.
In `aiff_open()` function of `oggenc/audio.c` file, size argument of alloca() call is not checked tightly, and therefore a large size of memory can be requested.
```
if(!find_aiff_chunk(in, "COMM", &len))
{
fprintf(stderr, _("Warning: No common chunk found in AIFF file\n"));
return 0; /* EOF before COMM chunk */
}
if(len < 18)
{
fprintf(stderr, _("Warning: Truncated common chunk in AIFF header\n"));
return 0; /* Weird common chunk */
}
buffer = alloca(len);
if(fread(buffer,1,len,in) < len)
{
fprintf(stderr, _("Warning: Unexpected EOF in reading AIFF header\n"));
return 0;
}
```
In 64-bit environment, this will simply make the program to crash, but in 32-bit environment this bug can lead to a remote code execution. If a malicious attacker requests a large size of memory (e.g. alloca(0xffffff00)), this will **lift up** the stack pointer (%esp register) instead of correctly allocating a stack buffer. Then, the subsequent fread() call will overwrite the stack and corrupt the saved return address.
I attach the PoC input file to reproduce this bug.
[poc](/uploads/ab90d639d90d2fca08ddbb6e787f8522/poc)
```
jason@debian-stretch:~/ground/vorbis-tools-1.4.0$ gdb oggenc/oggenc -q
Reading symbols from oggenc/oggenc...done.
(gdb) run ~/poc
Starting program: /home/jason/ground/vorbis-tools-1.4.0/oggenc/oggenc ~/poc
Warning: Unexpected EOF in reading AIFF header
Program received signal SIGSEGV, Segmentation fault.
0x41414141 in ?? ()
(gdb) info reg $eip
eip 0x41414141 0x41414141
```https://gitlab.xiph.org/xiph/icecast-server/-/issues/2316MP3 files sent by Icecast do not play on Chrome2018-08-27T12:34:43ZLaurensGMP3 files sent by Icecast do not play on ChromeI have a webpage with Jplayer to play .mp3 files from an Icecast server. Up to and including icecast version 2.4.0 this works on all browsers (Firefox, IE, Edge, Chrome on Windows; Firefox, Puffin, Chrome on Android). When using icecast ...I have a webpage with Jplayer to play .mp3 files from an Icecast server. Up to and including icecast version 2.4.0 this works on all browsers (Firefox, IE, Edge, Chrome on Windows; Firefox, Puffin, Chrome on Android). When using icecast versions 2.4.2 or 2.4.3 it works on all browsers except Chrome.Thomas B. RückerThomas B. Rücker