From fd718dfc7465f44b42ee8b99e8864994d222d111 Mon Sep 17 00:00:00 2001 From: smlng Date: Mon, 6 Aug 2018 16:09:22 +0200 Subject: [PATCH] gnrc_udp: assert ports not zero UDP port 0 is reserved for system usage, e.g., to tell the OS to set a random source port. Hence, neither source nor destination port should be 0 when transmitting. This PR adds proper asserts. --- sys/include/net/gnrc/udp.h | 2 ++ sys/net/gnrc/transport_layer/udp/gnrc_udp.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/sys/include/net/gnrc/udp.h b/sys/include/net/gnrc/udp.h index 91e4bbe981..2b19e98876 100644 --- a/sys/include/net/gnrc/udp.h +++ b/sys/include/net/gnrc/udp.h @@ -76,6 +76,8 @@ int gnrc_udp_calc_csum(gnrc_pktsnip_t *hdr, gnrc_pktsnip_t *pseudo_hdr); * @return pointer to the newly created (and allocated) header * @return NULL on `src == NULL`, `dst == NULL`, `src_len != 2`, `dst_len != 2` * or on allocation error + * + * @pre `src > 0` and `dst > 0` */ gnrc_pktsnip_t *gnrc_udp_hdr_build(gnrc_pktsnip_t *payload, uint16_t src, uint16_t dst); diff --git a/sys/net/gnrc/transport_layer/udp/gnrc_udp.c b/sys/net/gnrc/transport_layer/udp/gnrc_udp.c index 2bc293f4b4..ceeb4d33a0 100644 --- a/sys/net/gnrc/transport_layer/udp/gnrc_udp.c +++ b/sys/net/gnrc/transport_layer/udp/gnrc_udp.c @@ -280,6 +280,8 @@ int gnrc_udp_calc_csum(gnrc_pktsnip_t *hdr, gnrc_pktsnip_t *pseudo_hdr) gnrc_pktsnip_t *gnrc_udp_hdr_build(gnrc_pktsnip_t *payload, uint16_t src, uint16_t dst) { + assert((src > 0) && (dst > 0)); + gnrc_pktsnip_t *res; udp_hdr_t *hdr;