From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id E6F1D3858405; Tue, 4 Jan 2022 18:58:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E6F1D3858405 From: "evvers at ya dot ru" To: elfutils-devel@sourceware.org Subject: [Bug libdw/28720] UBSan: member access within misaligned address 0x7f6e8d80f142 for type 'struct Elf32_Phdr', which requires 4 byte alignment Date: Tue, 04 Jan 2022 18:58:47 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: elfutils X-Bugzilla-Component: libdw X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: evvers at ya dot ru X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: mark at klomp dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: elfutils-devel@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Elfutils-devel mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Jan 2022 18:58:48 -0000 https://sourceware.org/bugzilla/show_bug.cgi?id=3D28720 --- Comment #8 from Evgeny Vereshchagin --- (In reply to Mark Wielaard from comment #7) > commit 9f70a762ab88ceebb8a48a7c9c3ce39ff7f205af > Author: Mark Wielaard > Date: Fri Dec 24 02:01:32 2021 +0100 >=20 > libdwfl: Calculate addr to read by hand in link_map.c read_addrs. >=20=20=20=20=20 > The gcc undefined sanitizer doesn't like the trick we use to calculate > the (possibly) unaligned addresses to read. So calculate them by hand > as unsigned char pointers. >=20=20=20=20=20 > https://sourceware.org/bugzilla/show_bug.cgi?id=3D28720 >=20=20=20=20=20 > Signed-off-by: Mark Wielaard >=20 > Which should this particular issue. I'm not sure but it seems it can still be triggered with that commit applie= d: ``` $ git log --oneline -5 9f70a762 (HEAD -> master, origin/master, origin/HEAD) libdwfl: Calculate ad= dr to read by hand in link_map.c read_addrs. 5b490793 libdwfl: Call xlatetom on aligned buffers in dwfl_link_map_report 1cf73965 libdwfl: Make sure dwfl_elf_phdr_memory_callback returns at least minread 4fdd8588 libdwfl: Always clean up build_id.memory 8f8c78cc libdwfl: Handle unaligned Nhdr in dwfl_segment_report_module $ autoreconf -i -f $ ./configure --enable-maintainer-mode --enable-sanitize-undefined $ make -j$(nproc) V=3D1 $ UBSAN_OPTIONS=3Dprint_stacktrace=3D1:print_summary=3D1:halt_on_error=3D1 LD_LIBRARY_PATH=3D"./libdw;./libelf" ./src/stack --core ./attachment.cgi\?id\=3D13875 gelf_xlate.h:48:1: runtime error: member access within misaligned address 0x7f5cd5612077 for type 'struct Elf32_Dyn', which requires 4 byte alignment 0x7f5cd5612077: note: pointer points here 00 10 00 00 00 00 00 00 00 00 02 01 00 00 00 00 00 00 7f 45 46 4c 46 00= 00 01 01 00 01 00 08 00 ^ #0 0x7f5cd74851fc in Elf32_cvt_Dyn /home/vagrant/elfutils/libelf/gelf_xlate.h:48 #1 0x7f5cd7484363 in elf32_xlatetom /home/vagrant/elfutils/libelf/elf32_xlatetom.c:104 #2 0x7f5cd73b4fbf in dwfl_segment_report_module /home/vagrant/elfutils/libdwfl/dwfl_segment_report_module.c:848 #3 0x7f5cd73b9fc9 in _new.dwfl_core_file_report /home/vagrant/elfutils/libdwfl/core-file.c:563 #4 0x402fa0 in parse_opt /home/vagrant/elfutils/src/stack.c:595 #5 0x7f5cd6617471 in argp_parse (/lib64/libc.so.6+0x11e471) #6 0x4026aa in main /home/vagrant/elfutils/src/stack.c:695 #7 0x7f5cd652655f in __libc_start_call_main (/lib64/libc.so.6+0x2d55f) #8 0x7f5cd652660b in __libc_start_main_impl (/lib64/libc.so.6+0x2d60b) #9 0x402944 in _start (/home/vagrant/elfutils/src/stack+0x402944) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior gelf_xlate.h:48:1 in ``` --=20 You are receiving this mail because: You are on the CC list for the bug.=