Bug#898330: vlc: Building package with address sanitizer fails

Vincas Dargis vindrg at gmail.com
Thu May 10 11:43:34 BST 2018


Package: src:vlc
Version: 2.2.7-1~deb9u1
Severity: normal

Dear Maintainer,

I wanted to build vlc with address sanitizer enabled to catch some
strange crashes, but strangely ASAN interferes with build process.

If I export these variables:

export DEB_BUILD_MAINT_OPTIONS=sanitize=+address,+undefined
export DEB_GUILD_OPTIONS=nocheck

and run:

dpkg-buildpackage -rfakeroot -uc -us -j4

I get this:

```
libtool: link: gcc -DTOP_BUILDDIR=\"/home/admin1/Desktop/vlc/vlc-2.2.7\" -DTOP_SRCDIR=\"/home/admin1/Desktop/vlc/vlc-2.2.7\" -g -O2 -fdebug-prefix-map=/home/admin1/Desk
top/vlc/vlc-2.2.7=. -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wextra -Wsign-compa
re -Wundef -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -Werror-implicit-function-declaration -pipe -fvisibility=hid
den -O4 -fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range -funroll-loops -fomit-frame-pointer -fsanitize=address -fs
anitize=undefined -Wl,-z -Wl,relro -o vlc-static vlc_static-vlc.o vlc_static-override.o  -Wl,--as-needed ../lib/.libs/libvlc.so /home/admin1/Desktop/vlc/vlc-2.2.7/src/.
libs/libvlccore.so -lrt -lidn -ldbus-1 -lm -lpthread -ldl -Wl,-rpath -Wl,/home/admin1/Desktop/vlc/vlc-2.2.7/lib/.libs -Wl,-rpath -Wl,/home/admin1/Desktop/vlc/vlc-2.2.7/
src/.libs                                                                                                                                                               
                                                                                                                                                                        
=================================================================                                                                                                       
==8337==ERROR: LeakSanitizer: detected memory leaks                                                                                                                     
                                                                                                                                                                        
Direct leak of 8 byte(s) in 1 object(s) allocated from:                                                                                                                 
    #0 0x7fee31fd2d28 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1d28)                                                                                        
    #1 0x7fee15525678  (<unknown module>)                                                                                                                               
                                                                                                                                                                        
Indirect leak of 12384 byte(s) in 6 object(s) allocated from:                                                                                                           
    #0 0x7fee31fd2ed0 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1ed0)                                                                                        
    #1 0x7fee226ce4df  (<unknown module>)                                                                                                                               

Indirect leak of 12384 byte(s) in 6 object(s) allocated from:
    #0 0x7fee31fd2ed0 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1ed0)
    #1 0x7fee18adf4df  (<unknown module>)

Indirect leak of 12384 byte(s) in 6 object(s) allocated from:
    #0 0x7fee31fd2ed0 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1ed0)
    #1 0x7fee29dba4df  (/usr/lib/x86_64-linux-gnu/libX11.so.6+0x274df)

Indirect leak of 12384 byte(s) in 6 object(s) allocated from:
    #0 0x7fee31fd2ed0 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1ed0)
    #1 0x7fee173584df  (<unknown module>)

Indirect leak of 12384 byte(s) in 6 object(s) allocated from:
    #0 0x7fee31fd2ed0 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1ed0)
    #1 0x7fee17c794df  (<unknown module>)

Indirect leak of 12384 byte(s) in 6 object(s) allocated from:
    #0 0x7fee31fd2ed0 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1ed0)
    #1 0x7fee250ae4df  (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x40d4df)

Indirect leak of 12384 byte(s) in 6 object(s) allocated from:
    #0 0x7fee31fd2ed0 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1ed0)
    #1 0x7fee152c64df  (<unknown module>)
```

Then I though I could workaround with:

export ASAN_OPTIONS=detect_leaks=0

But then I get "ASan runtime does not come first in initial library list":

```
libtool: install: /usr/bin/install -c .libs/libvlc.lai /home/admin1/Desktop/vlc/vlc-2.2.7/debian/tmp/usr/lib/x86_64-linux-gnu/libvlc.la
libtool: warning: remember to run 'libtool --finish /usr/lib/x86_64-linux-gnu'
make[5]: Leaving directory '/home/admin1/Desktop/vlc/vlc-2.2.7/lib'
make[4]: Leaving directory '/home/admin1/Desktop/vlc/vlc-2.2.7/lib'
make[3]: Leaving directory '/home/admin1/Desktop/vlc/vlc-2.2.7/lib'
Making install in bin
make[3]: Entering directory '/home/admin1/Desktop/vlc/vlc-2.2.7/bin'
rm -f ../modules/plugins.dat
if test "x86_64-pc-linux-gnu" = "x86_64-pc-linux-gnu"; then \
        ./vlc-cache-gen ../modules ; \
else \
        echo "Cross-compilation: cache generation skipped!" ; \
fi
==23576==ASan runtime does not come first in initial library list; you should either link runtime to your application or manually preload it with LD_PRELOAD.
Makefile:1527: recipe for target '../modules/plugins.dat' failed
make[3]: *** [../modules/plugins.dat] Error 1
make[3]: Leaving directory '/home/admin1/Desktop/vlc/vlc-2.2.7/bin'
Makefile:2266: recipe for target 'install-recursive' failed
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory '/home/admin1/Desktop/vlc/vlc-2.2.7'
Makefile:2732: recipe for target 'install' failed
make[1]: *** [install] Error 2
make[1]: Leaving directory '/home/admin1/Desktop/vlc/vlc-2.2.7'
dh_auto_install: make -j5 install DESTDIR=/home/admin1/Desktop/vlc/vlc-2.2.7/debian/tmp AM_UPDATE_INFO_DIR=no returned exit code 2
debian/rules:337: recipe for target 'binary' failed
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
```

Then tried:

export ASAN_OPTIONS=halt_on_error=0,detect_leaks=0

but with no help.


-- System Information:
Debian Release: 9.4
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-debug'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.16.0-0.bpo.1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages vlc depends on:
ii  dpkg                     1.18.24
ii  vlc-bin                  2.2.7-1~deb9u1
ii  vlc-l10n                 2.2.7-1~deb9u1
ii  vlc-plugin-base          2.2.7-1~deb9u1
ii  vlc-plugin-qt            2.2.7-1~deb9u1
ii  vlc-plugin-video-output  2.2.7-1~deb9u1

Versions of packages vlc recommends:
ii  vlc-plugin-notify          2.2.7-1~deb9u1
ii  vlc-plugin-samba           2.2.7-1~deb9u1
ii  vlc-plugin-skins2          2.2.7-1~deb9u1
ii  vlc-plugin-video-splitter  2.2.7-1~deb9u1
ii  vlc-plugin-visualization   2.2.7-1~deb9u1

vlc suggests no packages.

Versions of packages libvlc-bin depends on:
ii  libc6    2.24-11+deb9u3
ii  libvlc5  2.2.7-1~deb9u1

Versions of packages libvlc5 depends on:
ii  dpkg         1.18.24
ii  libc6        2.24-11+deb9u3
ii  libvlccore8  2.2.7-1~deb9u1

Versions of packages libvlc5 recommends:
ii  libvlc-bin  2.2.7-1~deb9u1

Versions of packages libvlccore8 depends on:
ii  dpkg         1.18.24
ii  libc6        2.24-11+deb9u3
ii  libdbus-1-3  1.10.26-0+deb9u1
ii  libidn11     1.33-1

Versions of packages libvlccore8 recommends:
ii  libproxy-tools  0.4.14-2

Versions of packages vlc-bin depends on:
ii  libc6       2.24-11+deb9u3
ii  libvlc-bin  2.2.7-1~deb9u1
ii  libvlc5     2.2.7-1~deb9u1

Versions of packages vlc-plugin-base depends on:
ii  liba52-0.7.4               0.7.4-19
ii  libasound2                 1.1.3-5
ii  libass5                    1:0.13.4-2
ii  libavahi-client3           0.6.32-2
ii  libavahi-common3           0.6.32-2
ii  libavc1394-0               0.5.4-4+b1
ii  libbasicusageenvironment1  2016.11.28-1
ii  libbluray1                 1:0.9.3-3
ii  libbz2-1.0                 1.0.6-8.1
ii  libc6                      2.24-11+deb9u3
ii  libcairo2                  1.14.8-1
ii  libcddb2                   1.3.2-5
ii  libcdio13                  0.83-4.3+b1
ii  libchromaprint1            1.4.2-1
ii  libcrystalhd3              1:0.0~git20110715.fdd2f19-12
ii  libdbus-1-3                1.10.26-0+deb9u1
ii  libdc1394-22               2.2.5-1
ii  libdca0                    0.0.5-10
ii  libdirectfb-1.2-9          1.2.10.0-8+deb9u1
ii  libdvbpsi10                1.3.0-5
ii  libdvdnav4                 5.0.3-3
ii  libdvdread4                5.0.3-2
ii  libebml4v5                 1.3.4-1
ii  libfaad2                   2.8.0~cvs20161113-1
ii  libflac8                   1.3.2-1
ii  libfontconfig1             2.11.0-6.7+b1
ii  libfreetype6               2.6.3-3.2
ii  libfribidi0                0.19.7-1+b1
ii  libgcc1                    1:6.3.0-18+deb9u1
ii  libgcrypt20                1.7.6-2+deb9u2
ii  libglib2.0-0               2.50.3-2
ii  libgme0                    0.6.0-4
ii  libgnutls30                3.5.8-5+deb9u3
ii  libgpg-error0              1.26-2
ii  libgroupsock8              2016.11.28-1
ii  libgsm1                    1.0.13-4+b2
ii  libjpeg62-turbo            1:1.5.1-2
ii  libkate1                   0.4.1-7+b1
ii  liblirc-client0            0.9.4c-9
ii  liblivemedia57             2016.11.28-1
ii  liblua5.2-0                5.2.4-1.1+b2
ii  liblzma5                   5.2.2-1.2+b1
ii  libmad0                    0.15.1b-8+deb9u1
ii  libmatroska6v5             1.4.5-2
ii  libmp3lame0                3.99.5+repack1-9+b2
ii  libmpcdec6                 2:0.1~r495-1+b1
ii  libmpeg2-4                 0.5.1-7+b2
ii  libmtp9                    1.1.13-1
ii  libncursesw5               6.0+20161126-1+deb9u2
ii  libogg0                    1.3.2-1
ii  libopenmpt-modplug1        0.2.7386~beta20.3-3+deb9u2
ii  libopus0                   1.2~alpha2-1
ii  libpng16-16                1.6.28-1
ii  libpulse0                  10.0-1+deb9u1
ii  libraw1394-11              2.1.2-1+b1
ii  libresid-builder0c2a       2.1.1-15
ii  librsvg2-2                 2.40.16-1+b1
ii  librtmp1                   2.4+20151223.gitfa8646d.1-1+b1
ii  libsamplerate0             0.1.8-8+b2
ii  libsdl-image1.2            1.2.12-5+deb9u1
ii  libsdl1.2debian            1.2.15+dfsg1-4
ii  libshine3                  3.1.0-5
ii  libshout3                  2.3.1-3
ii  libsidplay2                2.1.1-15
ii  libsnappy1v5               1.1.3-3
ii  libsndio6.1                1.1.0-3
ii  libspeex1                  1.2~rc1.2-1+b2
ii  libspeexdsp1               1.2~rc1.2-1+b2
ii  libssh-gcrypt-4            0.7.3-2
ii  libssh2-1                  1.7.0-1
ii  libstdc++6                 6.3.0-18+deb9u1
ii  libtag1v5                  1.11.1+dfsg.1-0.1
ii  libtheora0                 1.1.1+dfsg.1-14+b1
ii  libtinfo5                  6.0+20161126-1+deb9u2
ii  libtwolame0                0.3.13-2
ii  libudev1                   232-25+deb9u3
ii  libupnp6                   1:1.6.19+git20160116-1.2
ii  libusageenvironment3       2016.11.28-1
ii  libva-drm1                 1.7.3-2
ii  libva-x11-1                1.7.3-2
ii  libva1                     1.7.3-2
ii  libvcdinfo0                0.7.24+dfsg-0.2
ii  libvlccore8                2.2.7-1~deb9u1
ii  libvorbis0a                1.3.5-4+deb9u2
ii  libvorbisenc2              1.3.5-4+deb9u2
ii  libvpx4                    1.6.1-3+deb9u1
ii  libwavpack1                5.0.0-2+deb9u2
ii  libwebp6                   0.5.2-1
ii  libwebpmux2                0.5.2-1
ii  libx11-6                   2:1.6.4-3
ii  libx264-148                2:0.148.2748+git97eaef2-1
ii  libx265-95                 2.1-2+b2
ii  libxcb-keysyms1            0.4.0-1+b2
ii  libxcb1                    1.12-1
ii  libxml2                    2.9.4+dfsg1-2.2+deb9u2
ii  libxvidcore4               2:1.3.4-1+b2
ii  libzvbi0                   0.2.35-13
ii  vlc-data                   2.2.7-1~deb9u1
ii  zlib1g                     1:1.2.8.dfsg-5

Versions of packages vlc-plugin-base recommends:
ii  xdg-utils  1.1.1-1

Versions of packages vlc-plugin-base suggests:
pn  libdvdcss2  <none>

Versions of packages vlc-plugin-notify depends on:
ii  dpkg                1.18.24
ii  libc6               2.24-11+deb9u3
ii  libgdk-pixbuf2.0-0  2.36.5-2+deb9u2
ii  libglib2.0-0        2.50.3-2
ii  libgtk2.0-0         2.24.31-2
ii  libnotify4          0.7.7-2
ii  libvlccore8         2.2.7-1~deb9u1

Versions of packages vlc-plugin-qt depends on:
ii  libc6             2.24-11+deb9u3
ii  libgcc1           1:6.3.0-18+deb9u1
ii  libqt5core5a      5.7.1+dfsg-3+b1
ii  libqt5gui5        5.7.1+dfsg-3+b1
ii  libqt5widgets5    5.7.1+dfsg-3+b1
ii  libqt5x11extras5  5.7.1~20161021-2
ii  libstdc++6        6.3.0-18+deb9u1
ii  libvlccore8       2.2.7-1~deb9u1
ii  libx11-6          2:1.6.4-3
ii  libxi6            2:1.7.9-1

Versions of packages vlc-plugin-qt recommends:
ii  vlc-bin  2.2.7-1~deb9u1

Versions of packages vlc-plugin-skins2 depends on:
ii  fonts-freefont-ttf  20120503-6
ii  libc6               2.24-11+deb9u3
ii  libfreetype6        2.6.3-3.2
ii  libfribidi0         0.19.7-1+b1
ii  libgcc1             1:6.3.0-18+deb9u1
ii  libstdc++6          6.3.0-18+deb9u1
ii  libvlccore8         2.2.7-1~deb9u1
ii  libx11-6            2:1.6.4-3
ii  libxext6            2:1.3.3-1+b2
ii  libxinerama1        2:1.1.3-1+b3
ii  libxpm4             1:3.5.12-1
ii  vlc-plugin-qt       2.2.7-1~deb9u1
ii  zlib1g              1:1.2.8.dfsg-5

Versions of packages vlc-plugin-skins2 recommends:
ii  vlc-bin  2.2.7-1~deb9u1

Versions of packages vlc-plugin-video-output depends on:
ii  libaa1                      1.4p5-44+b1
ii  libc6                       2.24-11+deb9u3
ii  libcaca0                    0.99.beta19-2+b2
ii  libegl1-mesa [libegl1-x11]  13.0.6-1+b2
ii  libgl1-mesa-glx [libgl1]    13.0.6-1+b2
ii  libgles1-mesa [libgles1]    13.0.6-1+b2
ii  libgles2-mesa [libgles2]    13.0.6-1+b2
ii  libvlccore8                 2.2.7-1~deb9u1
ii  libx11-6                    2:1.6.4-3
ii  libxcb-keysyms1             0.4.0-1+b2
ii  libxcb-shm0                 1.12-1
ii  libxcb-xv0                  1.12-1
ii  libxcb1                     1.12-1

Versions of packages vlc-plugin-video-splitter depends on:
ii  libc6          2.24-11+deb9u3
ii  libvlccore8    2.2.7-1~deb9u1
ii  libxcb-randr0  1.12-1
ii  libxcb1        1.12-1

Versions of packages vlc-plugin-visualization depends on:
ii  libc6                     2.24-11+deb9u3
ii  libgl1-mesa-glx [libgl1]  13.0.6-1+b2
ii  libvlccore8               2.2.7-1~deb9u1

-- no debconf information



More information about the pkg-multimedia-maintainers mailing list