aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Willmann <dwillmann@sysmocom.de>2016-01-07 17:57:49 +0100
committerDaniel Willmann <dwillmann@sysmocom.de>2016-01-07 18:01:06 +0100
commita8b6b1e3a1fb195d33f2e244494cb902eec5e405 (patch)
tree6ad46b36be315080579fb3ae71158bdb118d36ca
parentc858fe9f9091a9a18460a4fa7730b1985de5898c (diff)
hnbgw_hnbap: Zero IEs_t before decode is calleddaniel/wip
This ensures that presenceMask is zero and optional fields will be freed correctly. This needs to happen for ranap and rua as well.
-rw-r--r--src/hnbgw_hnbap.c5
1 files changed, 5 insertions, 0 deletions
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;