Summary: | media-plugins/gst-plugins-faad-1.4.5, bad #if check leads to buffer overflow and segfault. (GCC 5 preprocessor problem) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Gabriel Marcano <gabemarcano> |
Component: | [OLD] GCC Porting | Assignee: | GStreamer package maintainers <gstreamer> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gabemarcano |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
URL: | https://bugzilla.gnome.org/show_bug.cgi?id=749461 | ||
See Also: | https://bugzilla.gnome.org/show_bug.cgi?id=748571 | ||
Whiteboard: | Fixed upstream | ||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 536984 | ||
Attachments: |
Modified gst-plugins-faad-1.4.5.ebuild
gst-plugins-faad-1.4.5-gcc-5-fix.patch |
Description
Gabriel Marcano
2015-05-16 02:00:27 UTC
After poking around a bit more, the problem wasn't with gst-plugins-bad, but with the faad2 plugin for gstreamer. After more testing, the problem seems to be that the define that controls the conditionals causing the problem are undefined for some reason (FAAD2_MINOR_VERSION is undefined). The way faad2 works is that it expects this variable to be defined to some number in its config.h file. Checking with the config.h file confirms that it is undefined. Created attachment 403356 [details]
Modified gst-plugins-faad-1.4.5.ebuild
I found the problem. I am using GCC 5.1, and the preprocessor changes were breaking their configure script. I've patched it manually. I'll upload the patch in a second. I no longer get segfaults as the conditionals now work as intended.
Created attachment 403358 [details, diff]
gst-plugins-faad-1.4.5-gcc-5-fix.patch
This patch should go in the files/ directory of the new modified ebuild.
I made a bug report upstream. I also placed a patch for configure.ac up there. Not putting it here since using it would require calling eautoreconf every emerge, which is slower than just using the patch to fix the actual configure script. Fixed by applying upstream's patch. Thanks for reporting! +*gst-plugins-faad-1.4.5-r1 (25 May 2015) + + 25 May 2015; Alexandre Rostovtsev <tetromino@gentoo.org> + +gst-plugins-faad-1.4.5-r1.ebuild, + +files/gst-plugins-faad-1.4.5-version-check.patch: + Fix broken build with gcc-5.1 that makes Firefox segfault (bug #549612, + thanks to Gabriel Marcano). I have the same symptoms with www-client/firefox-bin-38.0.1. and sys-devel/gcc-5.1.0 I was hoping this would fix my issue but no. There is another related bug but without gcc-5.: https://bugs.gentoo.org/show_bug.cgi?id=546990 Is media-plugins/gst-plugins-faad-0.10.23-r1 hit by this bug too? emerge --info firefox-bin gcc gst-plugins-faad Portage 2.2.20 (python 3.3.5-final-0, default/linux/amd64/13.0, gcc-5.1.0, glibc-2.20-r2, 4.1.0-rc5 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-4.1.0-rc5-x86_64-AMD_Athlon-tm-_II_X2_240_Processor-with-gentoo-2.2 KiB Mem: 4047328 total, 3013060 free KiB Swap: 7103480 total, 7103480 free Timestamp of repository gentoo: Tue, 26 May 2015 01:45:01 +0000 sh bash 4.3_p39 ld GNU ld (Gentoo 2.25 p1.2) 2.25 ccache version 3.2.2 [enabled] app-shells/bash: 4.3_p39::gentoo dev-java/java-config: 2.2.0::gentoo dev-lang/perl: 5.20.2-r1::gentoo dev-lang/python: 2.7.9-r2::gentoo, 3.3.5-r1::gentoo, 3.4.3::gentoo dev-util/ccache: 3.2.2::gentoo dev-util/cmake: 3.2.2::gentoo dev-util/pkgconfig: 0.28-r2::gentoo sys-apps/baselayout: 2.2::gentoo sys-apps/openrc: 0.16.3::gentoo sys-apps/sandbox: 2.6-r1::gentoo sys-devel/autoconf: 2.13::gentoo, 2.69-r1::gentoo sys-devel/automake: 1.10.3-r1::gentoo, 1.11.6-r1::gentoo, 1.13.4::gentoo, 1.14.1::gentoo, 1.15::gentoo sys-devel/binutils: 2.25-r1::gentoo sys-devel/gcc: 5.1.0::gentoo sys-devel/gcc-config: 1.8::gentoo sys-devel/libtool: 2.4.6-r1::gentoo sys-devel/make: 4.1-r1::gentoo sys-kernel/linux-headers: 4.0::gentoo (virtual/os-headers) sys-libs/glibc: 2.20-r2::gentoo Repositories: gentoo location: /usr/portage sync-type: rsync sync-uri: rsync://rsync.de.gentoo.org/gentoo-portage priority: -1000 overlay_jl location: /usr/local/portage masters: gentoo priority: 0 betagarden location: /var/lib/layman/betagarden sync-type: laymansync sync-uri: git://anongit.gentoo.org/proj/betagarden.git masters: gentoo priority: 50 gamerlay location: /var/lib/layman/gamerlay sync-type: laymansync sync-uri: git://anongit.gentoo.org/proj/gamerlay.git masters: gentoo priority: 50 java location: /var/lib/layman/java sync-type: laymansync sync-uri: git://anongit.gentoo.org/proj/java.git masters: gentoo priority: 50 kde location: /var/lib/layman/kde sync-type: laymansync sync-uri: git://anongit.gentoo.org/proj/kde.git masters: gentoo priority: 50 qt location: /var/lib/layman/qt sync-type: laymansync sync-uri: git://anongit.gentoo.org/proj/qt.git masters: gentoo priority: 50 wine-overlay location: /var/lib/layman/wine-overlay sync-type: laymansync sync-uri: git://github.com/NP-Hardass/wine-overlay.git masters: gentoo priority: 50 Installed sets: @kde-applications-live, @kde-frameworks-live, @kde-plasma-live ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--autounmask-write=y --keep-going --quiet-build=y" FCFLAGS="-march=native -O2 -pipe" FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-march=native -O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="de_DE.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" USE="3dnow 3dnowext 64bit X Xaw3d a52 aac aacplus aacs aalib accessibility ace acl acpi activefilter aften alsa amd64 ap apm apng archive arping audacious audiofile automount bazaar bdplus berkdb binary-drivers bluetooth bluray boost bzip2 bzr cairo canusb ccache cdda cddb cdio cdparanoia cdr cdrdao cdrom cgi charconv chm chroot cjk clang cli client colordiff colors compress consolekit corefonts cpio cracklib crypt css cue cups curl curlwrappers cvs cxx daemon dbus declarative device-mapper dga dhcp doom doomsday dos download-subs dri dri3 dts dump dv dvb dvd dvdnav eap eap-sim eap-tls ebook egl emerald emoticon enca encode enscript equalizer evdev exif extensions extras faac faad fam farstream fat fax fbcon fdformat ffmpeg fftw firefox flac fluidsynth fontconfig foomaticdb fortran freedoom ftp fuse g3dvl gadu gallium gbm gd gdbm geoip gif gimp git glamor glut gme gnutls gpg gphoto2 gpm graphite gsm gstreamer gtk gtk3 gtkstyle gudev gui gzip hddtemp hdf hdf5 heretic hexen hid highlight hpcups hpijs http hwdb iconv icq icu id3tag idn imagemagick introspection ios ipc ipod ipv6 jack java javascript jit jpeg jpeg2k kate keymap ladspa lame lcms lensfun libass libcanberra libkms libnotify libsamplerate libssh2 libtiger libv4l libwww live llvm-shared-libs lm_sensors logrotate lua lzma lzo mad madwifi magic man matroska md5sum meanwhile mercurial metalink midi mikmod mime minizip mixer mjpeg mmap mms mmx mmxext mng mobi mod modplug modules mono mouse mozilla mp3 mp4 mpeg mpeg2 mplayer mtp multilib multimedia multislot musepack musicbrainz nano-syntax ncat ncurses ndiff network nfs nfsidmap nfsv4 nfsv41 nls nmap-update nokia normalize nowlistening nping nptl nsplugin ntfs ntfsprogs ntp nvidia nvram obex ocr ogg ogm openal opencl opengl openmax openmp openssl oscar osdmenu otr p2p pam pango panorama parport parse-clocks pcap pci pcre pcre16 pdf pipes plugins pm-utils png policykit postproc postscript ppds printsupport privacy projectm pulseaudio pvr python python3 qalculate qml qt5 quicktime r600-llvm-compiler radio rar raw rdesktop readline recording redeyes reiser4 reiserfs remote-access replaygain rpm rtc rtmp rtsp rubberband s3tc sbsms scanner schroedinger scripttools sdl secure-delete sensord session sftp sha512 shorten shout skins slang smi sndfile snowberry sockets sound soundtouch sox speex spell sql sqlite sqlite3 sse sse2 ssh ssl startup-notification statistics stk stream subtitles subversion svg swat symlink sync-plugin-portage syslog szip taglib tcpd texteffect tftp tftpd theora threads thumbnail tiff timidity tracepath traceroute translator truetype twolame udev udisks unicode upower urlpicpreview usb v4l vaapi vamp vcd vcdx vdpau video videos virtualbox vlm vnc vorbis vpx vroot vst wad wav wavpack webgl webkit webm webp webpresence widgets wifi winbind winpopup wmf wps wxwidgets x264 x265 xa xattr xcb xcomposite xfs xine xinerama xinetd xkb xml xmp xorg xosd xpm xrandr xscreensaver xv xvid xvmc yahoo zenmap zip zlib zvbi" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext popcnt sse sse2 sse3 sse4a" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev keyboard mouse joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python3_3" PYTHON_TARGETS="python2_7 python3_3 python3_4" RUBY_TARGETS="ruby19 ruby20 ruby21 ruby22" USERLAND="GNU" VIDEO_CARDS="fbdev vesa svga vga radeon modesetting r100 r200 r300 r600" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON ================================================================= Package Settings ================================================================= www-client/firefox-bin-38.0.1::gentoo was built with the following: USE="startup-notification (-selinux)" ABI_X86="64" LINGUAS="de -af -ar -as -ast -be -bg -bn_BD -bn_IN -br -bs -ca -cs -cy -da -el -en_GB -en_ZA -eo -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy_NL -ga_IE -gd -gl -gu_IN -he -hi_IN -hr -hu -hy_AM -id -is -it -ja -kk -kn -ko -lt -lv -mai -mk -ml -mr -nb_NO -nl -nn_NO -or -pa_IN -pl -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv_SE -ta -te -tr -uk -vi -zh_CN -zh_TW" sys-devel/gcc-5.1.0::gentoo was built with the following: USE="cxx fortran graphite (multilib) nls nptl openmp sanitize (-altivec) (-awt) -cilk -doc (-fixed-point) -gcj -go (-hardened) (-libssp) (-multislot) -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla" ABI_X86="64" media-plugins/gst-plugins-faad-0.10.23-r1::gentoo was built with the following: USE="" ABI_X86="64 -32 -x32" media-plugins/gst-plugins-faad-1.4.5-r1::gentoo was built with the following: USE="" ABI_X86="64 -32 -x32" (In reply to jospezial from comment #6) > I have the same symptoms with www-client/firefox-bin-38.0.1. and > sys-devel/gcc-5.1.0 > I was hoping this would fix my issue but no. > There is another related bug but without gcc-5.: > > https://bugs.gentoo.org/show_bug.cgi?id=546990 > > > Is media-plugins/gst-plugins-faad-0.10.23-r1 hit by this bug too? Even if 0.10 has this bug, it should not affect your situation. If I remember correctly, firefox (non-bin) switched from gstreamer-0.10 to 1.0 sometime around version 30 or 31. And I think that firefox-bin currently does not use gstreamer at all. (In reply to jospezial from comment #6) However, thanks for pointing out that gst-plugins-faad-0.10.x also needed to be checked for this issue :) +*gst-plugins-faad-0.10.23-r2 (26 May 2015) + + 26 May 2015; Alexandre Rostovtsev <tetromino@gentoo.org> + +gst-plugins-faad-0.10.23-r2.ebuild, gst-plugins-faad-1.4.5-r1.ebuild: + Fix broken gcc-5.1 build for gst:0.10 too, thanks to jospezial. > > Is media-plugins/gst-plugins-faad-0.10.23-r1 hit by this bug too?
>
> Even if 0.10 has this bug, it should not affect your situation.
>
> If I remember correctly, firefox (non-bin) switched from gstreamer-0.10 to
> 1.0 sometime around version 30 or 31.
>
> And I think that firefox-bin currently does not use gstreamer at all.
Guess what?
gst-plugins-faad-0.10.23-r2 fixes my issue.
And the answer you see in the output gdb when I play a youtube html5 video with www-client/firefox-bin-38.0.1:
Reading symbols from /usr/lib64/libnettle.so.4...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/libgmp.so.10...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/libtasn1.so.6...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/libfftw3f.so.3...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/gstreamer-0.10/libgstaudioparsers.so...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/gstreamer-0.10/libgstcoreindexers.so...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/gstreamer-0.10/libgstfaad.so...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/libfaad.so.2...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/gstreamer-0.10/libgstffmpegcolorspace.so...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/gstreamer-0.10/libgstvideoscale.so...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/gstreamer-0.10/libgstvolume.so...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/libgstcontroller-0.10.so.0...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/gstreamer-0.10/libgstaudioconvert.so...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/gstreamer-0.10/libgstaudioresample.so...(no debugging symbols found)...done.
Reading symbols from /usr/lib64/liborc-test-0.4.so.0...(no debugging symbols found)...done.
0x00007f5b050465ad in poll () from /lib64/libc.so.6
Thank you all so much!
|