From a8b6b1e3a1fb195d33f2e244494cb902eec5e405 Mon Sep 17 00:00:00 2001 From: Daniel Willmann Date: Thu, 7 Jan 2016 17:57:49 +0100 Subject: hnbgw_hnbap: Zero IEs_t before decode is called This ensures that presenceMask is zero and optional fields will be freed correctly. This needs to happen for ranap and rua as well. --- src/hnbgw_hnbap.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/hnbgw_hnbap.c b/src/hnbgw_hnbap.c index 971e97e..b810915 100644 --- a/src/hnbgw_hnbap.c +++ b/src/hnbgw_hnbap.c @@ -119,6 +119,7 @@ static int hnbgw_rx_hnb_deregister(struct hnb_context *ctx, ANY_t *in) HNBDe_RegisterIEs_t ies; int rc; + memset(&ies, 0, sizeof(ies)); rc = hnbap_decode_hnbde_registeries(&ies, in); if (rc < 0) return rc; @@ -137,6 +138,7 @@ static int hnbgw_rx_hnb_register_req(struct hnb_context *ctx, ANY_t *in) HNBRegisterRequestIEs_t ies; int rc; + memset(&ies, 0, sizeof(ies)); rc = hnbap_decode_hnbregisterrequesties(&ies, in); if (rc < 0) return rc; @@ -166,6 +168,7 @@ static int hnbgw_rx_ue_register_req(struct hnb_context *ctx, ANY_t *in) char imsi[16]; int rc; + memset(&ies, 0, sizeof(ies)); rc = hnbap_decode_ueregisterrequesties(&ies, in); if (rc < 0) return rc; @@ -207,6 +210,7 @@ static int hnbgw_rx_ue_deregister(struct hnb_context *ctx, ANY_t *in) int rc; uint32_t ctxid; + memset(&ies, 0, sizeof(ies)); rc = hnbap_decode_uede_registeries(&ies, in); if (rc < 0) return rc; @@ -229,6 +233,7 @@ static int hnbgw_rx_err_ind(struct hnb_context *hnb, ANY_t *in) ErrorIndicationIEs_t ies; int rc; + memset(&ies, 0, sizeof(ies)); rc = hnbap_decode_errorindicationies(&ies, in); if (rc < 0) return rc; -- cgit v1.2.3