diff options
-rw-r--r-- | epan/dissectors/asn1/ieee1609dot2/ieee1609dot2.cnf | 3 | ||||
-rw-r--r-- | epan/dissectors/packet-geonw.c | 1 | ||||
-rw-r--r-- | epan/dissectors/packet-ieee1609dot2.c | 7 |
3 files changed, 6 insertions, 5 deletions
diff --git a/epan/dissectors/asn1/ieee1609dot2/ieee1609dot2.cnf b/epan/dissectors/asn1/ieee1609dot2/ieee1609dot2.cnf index 3362570487..bd8c4c1549 100644 --- a/epan/dissectors/asn1/ieee1609dot2/ieee1609dot2.cnf +++ b/epan/dissectors/asn1/ieee1609dot2/ieee1609dot2.cnf @@ -94,8 +94,9 @@ EncryptedDataEncryptionKey/eciesBrainpoolP256r1 edekEciesBrainpoolP256r1 offset = dissect_oer_constrained_integer_64b_no_ub(tvb, offset, actx, tree, hf_index, 0U, NO_BOUND, &psid, FALSE); - if (my_private_data->unsecured_data) { + if ((my_private_data != NULL) && (my_private_data->unsecured_data != NULL)) { /* Call next dissector here */ + ieee1609dot2_set_next_default_psid(actx->pinfo, (guint32)psid); dissector_try_uint(unsecured_data_subdissector_table, (guint32) psid, my_private_data->unsecured_data, actx->pinfo, tree); my_private_data->unsecured_data = NULL; } diff --git a/epan/dissectors/packet-geonw.c b/epan/dissectors/packet-geonw.c index 0cf27452cf..21290a3b17 100644 --- a/epan/dissectors/packet-geonw.c +++ b/epan/dissectors/packet-geonw.c @@ -2114,7 +2114,6 @@ dissect_secured_message(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tr static int dissect_sgeonw(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree _U_, void *data _U_) { - DISSECTOR_ASSERT(!p_get_proto_data(wmem_file_scope(), pinfo, proto_geonw, 0)); // Just store the tvbuff for later, as it is embedded inside a secured geonetworking packet p_add_proto_data(wmem_file_scope(), pinfo, proto_geonw, 0, tvb); diff --git a/epan/dissectors/packet-ieee1609dot2.c b/epan/dissectors/packet-ieee1609dot2.c index 24f87ee35d..bc2d17ea11 100644 --- a/epan/dissectors/packet-ieee1609dot2.c +++ b/epan/dissectors/packet-ieee1609dot2.c @@ -1190,7 +1190,7 @@ dissect_ieee1609dot2_Psid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_ieee1609dot2_T_psPsid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 106 "./asn1/ieee1609dot2/ieee1609dot2.cnf" +#line 107 "./asn1/ieee1609dot2/ieee1609dot2.cnf" offset = dissect_oer_constrained_integer_64b_no_ub(tvb, offset, actx, tree, hf_index, 0U, NO_BOUND, &((ieee1609_private_data_t*)actx->private_data)->psidssp, FALSE); @@ -1203,7 +1203,7 @@ dissect_ieee1609dot2_T_psPsid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act static int dissect_ieee1609dot2_T_opaque(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 110 "./asn1/ieee1609dot2/ieee1609dot2.cnf" +#line 111 "./asn1/ieee1609dot2/ieee1609dot2.cnf" tvbuff_t *ssp; ieee1609_private_data_t *my_private_data = (ieee1609_private_data_t*)actx->private_data; @@ -1500,8 +1500,9 @@ dissect_ieee1609dot2_T_hiPsid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act offset = dissect_oer_constrained_integer_64b_no_ub(tvb, offset, actx, tree, hf_index, 0U, NO_BOUND, &psid, FALSE); - if (my_private_data->unsecured_data) { + if ((my_private_data != NULL) && (my_private_data->unsecured_data != NULL)) { /* Call next dissector here */ + ieee1609dot2_set_next_default_psid(actx->pinfo, (guint32)psid); dissector_try_uint(unsecured_data_subdissector_table, (guint32) psid, my_private_data->unsecured_data, actx->pinfo, tree); my_private_data->unsecured_data = NULL; } |