diff --git a/nfq2/Makefile b/nfq2/Makefile index 246c166..4420c24 100644 --- a/nfq2/Makefile +++ b/nfq2/Makefile @@ -6,6 +6,7 @@ CFLAGS_LINUX = -Wno-alloc-size-larger-than CFLAGS_SYSTEMD = -DUSE_SYSTEMD CFLAGS_BSD = -Wno-address-of-packed-member CFLAGS_CYGWIN = -Wno-address-of-packed-member -static +CFLAGS_UBSAN = -fsanitize=undefined,alignment -fno-sanitize-recover=undefined,alignment LDFLAGS_ANDROID = -llog LIBS = LIBS_LINUX = -lz -lnetfilter_queue -lnfnetlink -lmnl -lm @@ -135,6 +136,9 @@ all: nfqws2 nfqws2: $(SRC_FILES) $(CC) -s $(CFLAGS) $(LUA_CFL) $(CFLAGS_LINUX) -o nfqws2 $(SRC_FILES) $(LIBS) $(LUA_LIB) $(LIBS_LINUX) $(LDFLAGS) +ubsan: $(SRC_FILES) + $(CC) $(CFLAGS_UBSAN) $(CFLAGS) $(LUA_CFL) $(CFLAGS_LINUX) -o nfqws2 $(SRC_FILES) $(LIBS) $(LUA_LIB) $(LIBS_LINUX) $(LDFLAGS) + systemd: $(SRC_FILES) $(CC) -s $(CFLAGS) $(LUA_CFL) $(CFLAGS_LINUX) $(CFLAGS_SYSTEMD) -o nfqws2 $(SRC_FILES) $(LIBS) $(LUA_LIB) $(LIBS_LINUX) $(LIBS_SYSTEMD) $(LDFLAGS) diff --git a/nfq2/desync.c b/nfq2/desync.c index 836fc5d..8153ae4 100644 --- a/nfq2/desync.c +++ b/nfq2/desync.c @@ -2030,7 +2030,7 @@ static uint8_t dpi_desync_ip_packet( if (!!dis->ip == !!dis->ip6) return verdict; struct sockaddr_storage src, dst; - const char *ssid; + const char *ssid = NULL; struct desync_profile *dp; extract_endpoints(dis->ip, dis->ip6, NULL, NULL, &src, &dst); @@ -2129,6 +2129,8 @@ static uint8_t dpi_desync_packet_play( verdict = dpi_desync_ip_packet(fwmark, ifin, ifout, &dis, mod_pkt, len_mod_pkt); } } + else + DLOG("invalid packet - neither ipv4 or ipv6\n"); return verdict; } uint8_t dpi_desync_packet(uint32_t fwmark, const char *ifin, const char *ifout, const uint8_t *data_pkt, size_t len_pkt, uint8_t *mod_pkt, size_t *len_mod_pkt) diff --git a/nfq2/helpers.c b/nfq2/helpers.c index cfb085c..50a4e40 100644 --- a/nfq2/helpers.c +++ b/nfq2/helpers.c @@ -456,7 +456,10 @@ bool file_open_test(const char *filename, int flags) void fill_random_bytes(uint8_t *p,size_t sz) { size_t k; - for (k=0 ; (k+1)