diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/hnbap_common.c | 8 | ||||
-rw-r--r-- | src/ranap_common.c | 26 | ||||
-rw-r--r-- | src/rua_common.c | 8 |
3 files changed, 35 insertions, 7 deletions
diff --git a/src/hnbap_common.c b/src/hnbap_common.c index 2cd7ee2..1c92542 100644 --- a/src/hnbap_common.c +++ b/src/hnbap_common.c @@ -222,6 +222,7 @@ IE_t *hnbap_new_ie(ProtocolIE_ID_t id, { IE_t *buff; + int rc; if ((buff = CALLOC(1, sizeof(IE_t))) == NULL) { // Possible error on malloc @@ -231,7 +232,12 @@ IE_t *hnbap_new_ie(ProtocolIE_ID_t id, buff->id = id; buff->criticality = criticality; - ANY_fromType_aper(&buff->value, type, sptr); + rc = ANY_fromType_aper(&buff->value, type, sptr); + if (rc < 0) { + LOGP(DMAIN, LOGL_ERROR, "Error in ANY_fromType_aper\n"); + FREEMEM(buff); + return NULL; + } if (asn1_xer_print) if (xer_fprint(stdout, &asn_DEF_IE, buff) < 0) { diff --git a/src/ranap_common.c b/src/ranap_common.c index 8081c01..c12941c 100644 --- a/src/ranap_common.c +++ b/src/ranap_common.c @@ -164,8 +164,8 @@ RANAP_IE_t *ranap_new_ie(RANAP_ProtocolIE_ID_t id, RANAP_Criticality_t criticality, asn_TYPE_descriptor_t * type, void *sptr) { - RANAP_IE_t *buff; + int rc; if ((buff = CALLOC(1, sizeof(*buff))) == NULL) { // Possible error on malloc @@ -175,7 +175,12 @@ RANAP_IE_t *ranap_new_ie(RANAP_ProtocolIE_ID_t id, buff->id = id; buff->criticality = criticality; - ANY_fromType_aper(&buff->value, type, sptr); + rc = ANY_fromType_aper(&buff->value, type, sptr); + if (rc < 0) { + LOGP(DMAIN, LOGL_ERROR, "Error in ANY_fromType_aper\n"); + FREEMEM(buff); + return NULL; + } if (asn1_xer_print) if (xer_fprint(stdout, &asn_DEF_RANAP_IE, buff) < 0) { @@ -192,8 +197,8 @@ RANAP_ProtocolIE_FieldPair_t *ranap_new_ie_pair(RANAP_ProtocolIE_ID_t id, RANAP_Criticality_t criticality2, asn_TYPE_descriptor_t *type2, void *sptr2) { - RANAP_ProtocolIE_FieldPair_t *buff; + int rc; if ((buff = CALLOC(1, sizeof(*buff))) == NULL) { // Possible error on malloc @@ -204,8 +209,19 @@ RANAP_ProtocolIE_FieldPair_t *ranap_new_ie_pair(RANAP_ProtocolIE_ID_t id, buff->firstCriticality = criticality1; buff->secondCriticality = criticality2; - ANY_fromType_aper(&buff->firstValue, type1, sptr1); - ANY_fromType_aper(&buff->secondValue, type2, sptr2); + rc = ANY_fromType_aper(&buff->firstValue, type1, sptr1); + if (rc < 0) { + LOGP(DMAIN, LOGL_ERROR, "Error in ANY_fromType_aper\n"); + FREEMEM(buff); + return NULL; + } + + rc = ANY_fromType_aper(&buff->secondValue, type2, sptr2); + if (rc < 0) { + LOGP(DMAIN, LOGL_ERROR, "Error in ANY_fromType_aper\n"); + FREEMEM(buff); + return NULL; + } if (asn1_xer_print) if (xer_fprint(stdout, &asn_DEF_RANAP_ProtocolIE_FieldPair, buff) < 0) { diff --git a/src/rua_common.c b/src/rua_common.c index 3d7bacd..5809b7f 100644 --- a/src/rua_common.c +++ b/src/rua_common.c @@ -196,6 +196,7 @@ RUA_IE_t *rua_new_ie(RUA_ProtocolIE_ID_t id, { RUA_IE_t *buff; + int rc; if ((buff = CALLOC(1, sizeof(*buff))) == NULL) { // Possible error on malloc @@ -205,7 +206,12 @@ RUA_IE_t *rua_new_ie(RUA_ProtocolIE_ID_t id, buff->id = id; buff->criticality = criticality; - ANY_fromType_aper(&buff->value, type, sptr); + rc = ANY_fromType_aper(&buff->value, type, sptr); + if (rc < 0) { + LOGP(DMAIN, LOGL_ERROR, "Error in ANY_fromType_aper\n"); + FREEMEM(buff); + return NULL; + } if (asn1_xer_print) if (xer_fprint(stdout, &asn_DEF_RUA_IE, buff) < 0) { |