mirror of
https://github.com/henrydcase/pqc.git
synced 2024-11-22 15:39:07 +00:00
enable undefined behaviour sanitizer (#19)
enable undefined behaviour sanitizer
This commit is contained in:
commit
522826a090
2
Makefile
2
Makefile
@ -43,7 +43,7 @@ endif
|
|||||||
|
|
||||||
bin/sanitizer_$(subst /,_,$(SCHEME)): test/$(dir $(SCHEME))functest.c $(wildcard $(SCHEME)/clean/*.c) $(wildcard $(SCHEME)/clean/*.h) | require_scheme
|
bin/sanitizer_$(subst /,_,$(SCHEME)): test/$(dir $(SCHEME))functest.c $(wildcard $(SCHEME)/clean/*.c) $(wildcard $(SCHEME)/clean/*.h) | require_scheme
|
||||||
mkdir -p bin
|
mkdir -p bin
|
||||||
$(CC) $(CFLAGS) -fsanitize=address \
|
$(CC) $(CFLAGS) -fsanitize=address,undefined \
|
||||||
-DPQCLEAN_NAMESPACE=$(shell echo PQCLEAN_$(subst -,,$(notdir $(SCHEME))) | tr a-z A-Z) \
|
-DPQCLEAN_NAMESPACE=$(shell echo PQCLEAN_$(subst -,,$(notdir $(SCHEME))) | tr a-z A-Z) \
|
||||||
-iquote "./common/" \
|
-iquote "./common/" \
|
||||||
-iquote "$(SCHEME)/clean/" \
|
-iquote "$(SCHEME)/clean/" \
|
||||||
|
@ -6,15 +6,17 @@
|
|||||||
#define NTESTS 15
|
#define NTESTS 15
|
||||||
#define MLEN 32
|
#define MLEN 32
|
||||||
|
|
||||||
|
typedef uint64_t unaligned_uint64_t __attribute__((aligned(1)));
|
||||||
|
|
||||||
/* allocate a bit more for all keys and messages and
|
/* allocate a bit more for all keys and messages and
|
||||||
* make sure it is not touched by the implementations.
|
* make sure it is not touched by the implementations.
|
||||||
*/
|
*/
|
||||||
static void write_canary(unsigned char *d) {
|
static void write_canary(unsigned char *d) {
|
||||||
*((uint64_t *)d) = 0x0123456789ABCDEF;
|
*((unaligned_uint64_t *)d) = 0x0123456789ABCDEF;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int check_canary(const unsigned char *d) {
|
static int check_canary(const unsigned char *d) {
|
||||||
if (*(uint64_t *)d != 0x0123456789ABCDEF) {
|
if (*(unaligned_uint64_t *)d != 0x0123456789ABCDEF) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user