ci: Workaround bug in Valgrind detecting memcpy instead of memmove

Due to a bug in current packaged Valgrind in the CI (1:3.13.0-13.fc27)
check-valgrind is failing with:

==17986== Source and destination overlap in memcpy_chk(0x72c060, 0x72c068, 33)
==17986==    at 0x4C344F0: __memcpy_chk (vg_replace_strmem.c:1581)
==17986==    by 0x40E7E9: check_vmc_error_message (test-stream-device.c:166)
==17986==    by 0x40EFD4: test_stream_device_format_after_data (test-stream-device.c:349)
==17986==    by 0x7A012E9: test_case_run (gtestutils.c:2157)
==17986==    by 0x7A012E9: g_test_run_suite_internal (gtestutils.c:2241)
==17986==    by 0x7A0121A: g_test_run_suite_internal (gtestutils.c:2253)
==17986==    by 0x7A014C1: g_test_run_suite (gtestutils.c:2329)
==17986==    by 0x7A014E0: g_test_run (gtestutils.c:1594)
==17986==    by 0x40951A: main (test-stream-device.c:410)
==17986==

By default during CI build _FORTIFY_SOURCE is enabled, which turns memmove
into __memmove_chk, which is wrongly turned into __memcpy_chk when running
under Valgrind.
Setting _FORTIFY_SOURCE to 0 prevents the use of __memmove_chk, and avoids
triggering the Valgrind bug.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
This commit is contained in:
Frediano Ziglio 2018-04-16 14:08:47 +01:00
parent 3ad15fb5ca
commit ac05eee08a

View File

@ -34,7 +34,9 @@ check-valgrind:
dnf install valgrind
gstreamer1-libav gstreamer1-plugins-ugly gstreamer1-plugins-good gstreamer1-plugins-bad-free
-y
- ./autogen.sh --enable-valgrind --enable-extra-checks
- >
CFLAGS='-O2 -pipe -g -D_FORTIFY_SOURCE=0'
./autogen.sh --enable-valgrind --enable-extra-checks
- make
- make check-valgrind || (cat server/tests/test-suite-memcheck.log && exit 1)