From fc919ea28ed063ac197c199e4ad626fe20e08086 Mon Sep 17 00:00:00 2001 From: Oleg Hahm <oleg@hobbykeller.org> Date: Mon, 21 Mar 2016 12:53:00 +0100 Subject: [PATCH] netreg: assert correct param length for hdr_build --- sys/net/gnrc/netreg/gnrc_netreg.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/net/gnrc/netreg/gnrc_netreg.c b/sys/net/gnrc/netreg/gnrc_netreg.c index 39e1976d29..11d0d6ae8a 100644 --- a/sys/net/gnrc/netreg/gnrc_netreg.c +++ b/sys/net/gnrc/netreg/gnrc_netreg.c @@ -15,6 +15,7 @@ #include <errno.h> #include <string.h> +#include "assert.h" #include "clist.h" #include "utlist.h" #include "net/gnrc/netreg.h" @@ -143,12 +144,16 @@ gnrc_pktsnip_t *gnrc_netreg_hdr_build(gnrc_nettype_t type, gnrc_pktsnip_t *paylo #ifdef MODULE_GNRC_IPV6 case GNRC_NETTYPE_IPV6: + assert(src_len == sizeof(ipv6_addr_t)); + assert(dst_len == sizeof(ipv6_addr_t)); return gnrc_ipv6_hdr_build(payload, src, dst); #endif #ifdef MODULE_GNRC_TCP case GNRC_NETTYPE_TCP: { + assert(src_len == sizeof(uint16_t)); + assert(dst_len == sizeof(uint16_t)); uint16_t src_port = *((uint16_t *)src); uint16_t dst_port = *((uint16_t *)dst); return gnrc_tcp_hdr_build(payload, src_port, dst_port); @@ -158,6 +163,8 @@ gnrc_pktsnip_t *gnrc_netreg_hdr_build(gnrc_nettype_t type, gnrc_pktsnip_t *paylo case GNRC_NETTYPE_UDP: { + assert(src_len == sizeof(uint16_t)); + assert(dst_len == sizeof(uint16_t)); uint16_t src_port = *((uint16_t *)src); uint16_t dst_port = *((uint16_t *)dst); return gnrc_udp_hdr_build(payload, src_port, dst_port); -- GitLab