aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2021-10-18 11:55:13 -0700
committerWireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2021-10-18 20:19:35 +0000
commitd8742418aa550a12af70fe8d5b5fc9a095dd44ac (patch)
tree463c771451a6c267c21c28e5d308c0ebe448d10b
parentb7a612908a4bab457446f9a3803c2fd5ce440aab (diff)
IDMP: Initialize some variables.
Try to make sure protocolID and saved_protocolID are initialized before we use them. Another attempt at fixing #16342, #17664, and related bugs.
-rw-r--r--epan/dissectors/asn1/idmp/idmp.cnf8
-rw-r--r--epan/dissectors/packet-idmp.c5
2 files changed, 11 insertions, 2 deletions
diff --git a/epan/dissectors/asn1/idmp/idmp.cnf b/epan/dissectors/asn1/idmp/idmp.cnf
index 709eead110..fa69ac2419 100644
--- a/epan/dissectors/asn1/idmp/idmp.cnf
+++ b/epan/dissectors/asn1/idmp/idmp.cnf
@@ -35,8 +35,14 @@ IdmResult/invokeID ABBREV=idmResult.invokeID
#.FN_PARS OBJECT_IDENTIFIER FN_VARIANT = _str VAL_PTR = &protocolID
+#.FN_HDR IdmBind
+ protocolID = saved_protocolID = NULL;
+#.END
+
#.FN_FTR IdmBind
- saved_protocolID = wmem_strdup(wmem_epan_scope(), protocolID);
+ if (protocolID) {
+ saved_protocolID = wmem_strdup(wmem_epan_scope(), protocolID);
+ }
#.END
#.FN_BODY IdmBindResult/result
diff --git a/epan/dissectors/packet-idmp.c b/epan/dissectors/packet-idmp.c
index a307df65d3..0aed243aec 100644
--- a/epan/dissectors/packet-idmp.c
+++ b/epan/dissectors/packet-idmp.c
@@ -215,10 +215,13 @@ static const ber_sequence_t IdmBind_sequence[] = {
static int
dissect_idmp_IdmBind(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ protocolID = saved_protocolID = NULL;
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
IdmBind_sequence, hf_index, ett_idmp_IdmBind);
- saved_protocolID = wmem_strdup(wmem_epan_scope(), protocolID);
+ if (protocolID) {
+ saved_protocolID = wmem_strdup(wmem_epan_scope(), protocolID);
+ }
return offset;
}