summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2019-04-10 02:14:26 +0900
committerLibravatar Junio C Hamano <gitster@pobox.com>2019-04-10 02:14:26 +0900
commitc063a537bedd3b2363494171de2bbd58bf5c66a9 (patch)
treec663a17181cefe23e619fc8de1f756ff4aeafc1e
parentMerge branch 'jk/promote-ggg' (diff)
parentMakefile: fix unaligned loads in sha1dc with UBSan (diff)
downloadtgif-c063a537bedd3b2363494171de2bbd58bf5c66a9.tar.xz
Merge branch 'jk/sha1dc'
Build update for SHA-1 with collision detection. * jk/sha1dc: Makefile: fix unaligned loads in sha1dc with UBSan
-rw-r--r--Makefile1
m---------sha1collisiondetection0
-rw-r--r--sha1dc/sha1.c5
3 files changed, 4 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 3e03290d8f..9398de8f6e 100644
--- a/Makefile
+++ b/Makefile
@@ -1198,6 +1198,7 @@ BASIC_CFLAGS += -fsanitize=$(SANITIZE) -fno-sanitize-recover=$(SANITIZE)
BASIC_CFLAGS += -fno-omit-frame-pointer
ifneq ($(filter undefined,$(SANITIZERS)),)
BASIC_CFLAGS += -DNO_UNALIGNED_LOADS
+BASIC_CFLAGS += -DSHA1DC_FORCE_ALIGNED_ACCESS
endif
ifneq ($(filter leak,$(SANITIZERS)),)
BASIC_CFLAGS += -DSUPPRESS_ANNOTATED_LEAKS
diff --git a/sha1collisiondetection b/sha1collisiondetection
-Subproject 232357eb2ea0397388254a4b188333a227bf5b1
+Subproject 16033998da4b273aebd92c84b1e1b12e4aaf700
diff --git a/sha1dc/sha1.c b/sha1dc/sha1.c
index df0630bc6d..5931cf25d5 100644
--- a/sha1dc/sha1.c
+++ b/sha1dc/sha1.c
@@ -124,10 +124,11 @@
#endif
/*ENDIANNESS SELECTION*/
+#ifndef SHA1DC_FORCE_ALIGNED_ACCESS
#if defined(SHA1DC_FORCE_UNALIGNED_ACCESS) || defined(SHA1DC_ON_INTEL_LIKE_PROCESSOR)
#define SHA1DC_ALLOW_UNALIGNED_ACCESS
-#endif /*UNALIGNMENT DETECTION*/
-
+#endif /*UNALIGNED ACCESS DETECTION*/
+#endif /*FORCE ALIGNED ACCESS*/
#define rotate_right(x,n) (((x)>>(n))|((x)<<(32-(n))))
#define rotate_left(x,n) (((x)<<(n))|((x)>>(32-(n))))