test: Add windows_equally_evictable
Tests for the condition where the minimum age is less than any window's
current age, in which case we can get a NULL dereference if the
windows_reset_all() implementation is broken.
windows.c:409:23: runtime error: member access within null pointer of type 'struct window_context'
ASAN:DEADLYSIGNAL
=================================================================
==31400==ERROR: AddressSanitizer: SEGV on unknown address 0x00000004 (pc 0x0002b658 bp 0x74c00270 sp 0x7eb7c678 T0)
==31400==The signal is caused by a WRITE memory access.
==31400==Hint: address points to the zero page.
#0 0x2b657 in window_reset windows.c:410
#1 0x2cc9b in windows_create_map windows.c:572
#2 0x1f3f3 in protocol_v1_create_window protocol.c:167
#3 0x2121b in protocol_v2_create_window protocol.c:417
#4 0x24cd7f in generic_vpnor_create_window vpnor/protocol.cpp:51
#5 0x24d053 in protocol_v2_vpnor_create_window vpnor/protocol.cpp:63
#6 0x2663b in mbox_handle_create_window transport_mbox.c:282
#7 0x276db in handle_mbox_req transport_mbox.c:568
#8 0x276db in transport_mbox_dispatch transport_mbox.c:649
#9 0x17fcb in poll_loop mboxd.c:185
#10 0x17fcb in main mboxd.c:423
#11 0x46b68517 in __libc_start_main (/lib/libc.so.6+0x46b68517)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV windows.c:410 in window_reset
==31400==ABORTING
Change-Id: I8161e2ea17953e196d4bb3ca90d19e44ec10c86d
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
diff --git a/test/Makefile.am.include b/test/Makefile.am.include
index fab9e14..845c13a 100644
--- a/test/Makefile.am.include
+++ b/test/Makefile.am.include
@@ -99,6 +99,9 @@
test_get_mbox_info_v2_timeout_SOURCES = %reldir%/get_mbox_info_v2_timeout.c \
$(TEST_MBOX_SRCS) $(TEST_MOCK_SRCS)
+test_windows_equally_evictable_SOURCES = %reldir%/windows_equally_evictable.c \
+ $(TEST_MBOX_SRCS) $(TEST_MOCK_SRCS)
+
check_PROGRAMS += \
%reldir%/sanity \
%reldir%/flash_copy \
@@ -126,4 +129,5 @@
%reldir%/invalid_command \
%reldir%/read_window_cycle \
%reldir%/sequence_numbers \
- %reldir%/get_mbox_info_v2_timeout
+ %reldir%/get_mbox_info_v2_timeout \
+ %reldir%/windows_equally_evictable