dvbv5-zap crash (raspbian only)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Raspbian |
New
|
Undecided
|
Unassigned |
Bug Description
Summary: killing dvbv5-zap on raspbian result in double free or corruption and may crash system
Steps to reproduce:
1) Have a valid channel.conf and a USB tuner attached
2) timeout 10 dvbv5-zap -c channels.conf -v --lna=-1 'TF1' -P -o - > /dev/null (or simply launch dvbv5-zap and hit Ctrl+C)
Result: *** Error in 'dvbv5-zap': double free or corruption (fasttop): 0x(hex adress) ***
3) If you want to completely crash your system (complete freeze without any further notice, no log, no screen error message, unresponsive system), run:
while true;do timeout 10 dvbv5-zap -c channels.conf -v --lna=-1 'TF1' -P -o - > /dev/null;done
and just wait. Sometimes it takes hours, sometimes it's only a matter of minutes
All those signals produce the same result: 2) SIGINT 9) SIGKILL 15) SIGTERM
1) I was able to reproduce this on raspbian with different combination of raspberry pi hardware and software (raspberry 2 model B and raspberry zeroW)
* dvbv5-zap version 1.12.3: affected
* dvbv5-zap version 1.16.3 from buster: affected
* $ uname -a: Linux raspberrypi 4.14.98+ #1200 Tue Feb 12 20:11:02 GMT 2019 armv6l GNU/Linux: affected
* $ uname -a: Linux pihole 4.19.25-v7+ #1205 SMP Mon Feb 25 18:19:20 GMT 2019 armv7l GNU/Linux: affected
2) I cannot reproduce it on
* ubuntu 18.04 x64, dvbv5-zap version 1.14.2
* pure debian 9 x86, dvbv5-zap version 1.12.3
3) I reproduced it with different two tuners: rtl2832U from RTL-SDR.COM and a TerraTec Cinergy T Stick+
--> This seems to lie somewhere between raspbian, arm builds and dvbv5-zap
Thanks for your report. Would you be able to compile v4l-utils by yourself with address sanitiser enabled? That might give the upstream author(s) a better idea of what went wrong. It might even show you something on x86/64.
apt-get install libudev-dev gettext libtool autoconf automake pkg-config # from top of my head
git clone git://linuxtv. org/v4l- utils.git "-fsanitize= address" ./configure --enable-static --disable-shared
cd v4l-utils
./bootstrap.sh
# depending on your gcc version it might be beneficial to use clang and clang++ here
CFLAGS="-g -fsanitize=address" CXXFLAGS="-g -fsanitize=address" LDFLAGS=
make -j$(nproc)
utils/dvb/dvbv5-zap
Thanks!
Gregor