From 4fd6023b0383e7efa3b7b0211104a86ff5d3d4f6 Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 20 Sep 2016 16:33:50 +0200 Subject: Fix ASAN failure in bitrev_test Previously while testing osmo_nibble_shift_left_unal() following error was triggered by AddressSanitizer upon offs == 12 and the last sh_chk line, i.e. shift left of 12 nibbles from in2: ==3890== ERROR: AddressSanitizer: stack-buffer-overflow on address 0xbff5b5b6 at pc 0xb6186862 bp 0xbff5b4a8 sp 0xbff5b49c READ of size 1 at 0xbff5b5b6 thread T0 #0 0xb6186861 (/home/msuraev/source/gsm/libosmocore/src/.libs/libosmocore.so.7.0.0+0xc861) #1 0x8049d8b (/home/msuraev/source/gsm/libosmocore/tests/bits/.libs/lt-bitrev_test+0x8049d8b) #2 0x804a9d1 (/home/msuraev/source/gsm/libosmocore/tests/bits/.libs/lt-bitrev_test+0x804a9d1) #3 0xb5fe3af2 (/lib/i386-linux-gnu/libc-2.19.so+0x19af2) #4 0x8048a30 (/home/msuraev/source/gsm/libosmocore/tests/bits/.libs/lt-bitrev_test+0x8048a30) Address 0xbff5b5b6 is located at offset 38 in frame
of T0's stack: This frame has 3 object(s): [32, 38) 'in2' [96, 104) 'out' [160, 168) 'in1' The reason is incorrect range in test cycle. Fix it and adjust test output accordingly. Tweaked-by: Neels Hofmeyr Fixes: OW#1589 ("undefined behavior in libosmocore triggered by tests") Change-Id: I5eb3f600290c05b4ab9ac2450a28d616e6b415fd --- tests/bits/bitrev_test.c | 4 +++- tests/bits/bitrev_test.ok | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/bits/bitrev_test.c b/tests/bits/bitrev_test.c index 08f08278..b96241c5 100644 --- a/tests/bits/bitrev_test.c +++ b/tests/bits/bitrev_test.c @@ -297,7 +297,9 @@ int main(int argc, char **argv) sh_chk(in1, ARRAY_SIZE(in1), offs, true); sh_chk(in1, ARRAY_SIZE(in1), offs, false); sh_chk(in2, ARRAY_SIZE(in2), offs, true); - sh_chk(in2, ARRAY_SIZE(in2), offs, false); + /* in2 is too short to shift left 12 nibbles */ + if (offs < 12) + sh_chk(in2, ARRAY_SIZE(in2), offs, false); } return 0; } diff --git a/tests/bits/bitrev_test.ok b/tests/bits/bitrev_test.ok index 9fbb4d9c..e6f52af6 100644 --- a/tests/bits/bitrev_test.ok +++ b/tests/bits/bitrev_test.ok @@ -156,5 +156,3 @@ running nibble tests... OUT: 00dcafedeadb [6] R IN: b00bbabeface, nibble 12: OUT: 0b00bbabefac -[6] L IN: b00bbabeface, nibble 12: - OUT: 00bbabeface0 -- cgit v1.2.3