Thread (5 messages) flat view 5 messages, 3 authors, 2017-06-01

Re: Unaligned accesses in sha1dc

From: Martin Ågren <hidden>
Date: 2017-06-01 10:26:14

Possibly related (same subject, not in this thread)

On 1 June 2017 at 12:08, Andreas Schwab [off-list ref] wrote:
On Jun 01 2017, Junio C Hamano [off-list ref] wrote:
quoted
Depending on the model of "ARM" (or "SPARC") emulated with QEMU, and
depending on the OS that runs on such an "ARM" or "SPARC", we may
not see this---if the emulated OS has the "software unaligned-access
emulation" our userland may not see a SIGBUS.
Even if the architecture implements unaligned accesses in hardware, it
is still undefined behaviour, and the compiler will (eventually) take
advantage of it.
I tried to optically follow the macros and ended up on line 87/89 in
lib/sha1.c of the sha1dc-library, where there is undefined behavior if
the address is unaligned, which it seems it could be. Maybe Git uses
some particular combination of macro-definitions and I went down the
wrong path... There might also be other spots; I haven't thrown UBSan
at the code.

Using memcpy on those lines should not be a performance problem on
platforms where unaligned access is ok, of course assuming the
compiler sees the opportunity.

Martin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help