aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/asn1/ieee1609dot2/ieee1609dot2.cnf3
-rw-r--r--epan/dissectors/packet-geonw.c1
-rw-r--r--epan/dissectors/packet-ieee1609dot2.c7
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;
}