diff options
author | Gerald Combs <gerald@wireshark.org> | 2021-10-18 11:55:13 -0700 |
---|---|---|
committer | Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org> | 2021-10-18 20:19:35 +0000 |
commit | d8742418aa550a12af70fe8d5b5fc9a095dd44ac (patch) | |
tree | 463c771451a6c267c21c28e5d308c0ebe448d10b | |
parent | b7a612908a4bab457446f9a3803c2fd5ce440aab (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.cnf | 8 | ||||
-rw-r--r-- | epan/dissectors/packet-idmp.c | 5 |
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; } |