Skip to content

Commit

Permalink
tests: Add padding to pci_dev struct for ASAN
Browse files Browse the repository at this point in the history
This change addresses the following ASAN error detected in the chromium
tree:

 * ASAN error detected:
 * =================================================================
 * ==12==ERROR: AddressSanitizer: global-buffer-overflow on address
0x55a8a046c916 at pc 0x55a8a038a21d bp 0x7ffd5dbc9ed0 sp 0x7ffd5dbc9ec8
 * READ of size 2 at 0x55a8a046c916 thread T0
 *     #0 0x55a8a038a21c in nicrealtek_init /build/amd64-generic/tmp/por
tage/sys-apps/flashrom-9999/work/flashrom-9999-build/../flashrom-9999/ni
crealtek.c:119:15
 *     #1 0x55a8a032f172 in __sanitizer::BufferedStackTrace::UnwindImpl(
unsigned long, unsigned long, void*, bool, unsigned int) ??:0:0
 *     #2 0x55a8a02b65b8 in __asan::ErrorGeneric::Print() ??:0:0
 *     #3 0x55a8a03294d5 in __asan::ScopedInErrorReport::~ScopedInErrorR
eport() ??:0:0
 *     #4 0x55a8a032c5ae in __asan::ReportGenericError(unsigned long, un
signed long, unsigned long, unsigned long, bool, unsigned long, unsigned
 int, bool) ??:0:0
 *     #5 0x55a8a032d0f7 in __asan_report_load2 ??:0:0
 *
 * 0x55a8a046c916 is located 18 bytes to the right of global variable 'm
ock_pci_dev' defined in '../flashrom-9999/tests/tests.c:50:16' (0x55a8a0
46c900) of size 4
 * SUMMARY: AddressSanitizer: global-buffer-overflow (/tmp/portage/sys-a
pps/flashrom-9999/work/flashrom-9999-build/tests/flashrom_unit_tests+0x1
9a21c)
 * Shadow bytes around the buggy address:
 *   0x0ab5940858d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 *   0x0ab5940858e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 *   0x0ab5940858f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 *   0x0ab594085900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 *   0x0ab594085910: 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9 f9 f9 00 00
 * =>0x0ab594085920: 04 f9[f9]f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
 *   0x0ab594085930: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
 *   0x0ab594085940: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
 *   0x0ab594085950: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
 *   0x0ab594085960: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
 *   0x0ab594085970: f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
 * Shadow byte legend (one shadow byte represents 8 application bytes):
 *   Addressable:           00
 *   Partially addressable: 01 02 03 04 05 06 07
 *   Heap left redzone:       fa
 *   Freed heap region:       fd
 *   Stack left redzone:      f1
 *   Stack mid redzone:       f2
 *   Stack right redzone:     f3
 *   Stack after return:      f5
 *   Stack use after scope:   f8
 *   Global redzone:          f9
 *   Global init order:       f6
 *   Poisoned by user:        f7
 *   Container overflow:      fc
 *   Array cookie:            ac
 *   Intra object redzone:    bb
 *   ASan internal:           fe
 *   Left alloca redzone:     ca
 *   Right alloca redzone:    cb
 * ==12==ABORTING

BUG=b:224828279
TEST=./test_build.sh; FEATURES=test emerge-amd64-generic flashrom
BRANCH=none

Signed-off-by: Daniel Campello <campello@chromium.org>
Change-Id: I47943bf70181a9041f287df3ece0f7067a112de8
Reviewed-on: https://review.coreboot.org/c/flashrom/+/62845
Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
  • Loading branch information
djcampello authored and Anastasia Klimchuk committed Mar 21, 2022
1 parent e1dd006 commit d69c307
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions tests/io_mock.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@

/* Define struct pci_dev to avoid dependency on pci.h */
struct pci_dev {
char padding[18];
unsigned int device_id;
};

Expand Down

0 comments on commit d69c307

Please sign in to comment.