diff options
author | Joerg Mayer <jmayer@loplof.de> | 2019-02-20 21:11:00 +0100 |
---|---|---|
committer | Jörg Mayer <jmayer@loplof.de> | 2019-02-20 21:24:03 +0000 |
commit | c28d8f937ad21829007b7330fbedeffdca4db558 (patch) | |
tree | 3d7eaa520ecbfc4c78e5064d2dc7d88d0766ae81 /epan/dissectors/packet-dhcp.c | |
parent | c62dadd31f859a60b970f699992a5ddba837a42c (diff) |
packet-dhcp.c: Fix modification of a const char* string
Change-Id: Idef774e0ca77466113229a21fcf1aa22a42774c3
Reviewed-on: https://code.wireshark.org/review/32125
Reviewed-by: Jörg Mayer <jmayer@loplof.de>
Diffstat (limited to 'epan/dissectors/packet-dhcp.c')
-rw-r--r-- | epan/dissectors/packet-dhcp.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/epan/dissectors/packet-dhcp.c b/epan/dissectors/packet-dhcp.c index 1975cb0122..2f2a044b9e 100644 --- a/epan/dissectors/packet-dhcp.c +++ b/epan/dissectors/packet-dhcp.c @@ -3185,7 +3185,8 @@ dissect_dhcpopt_avaya_ip_telephone(tvbuff_t *tvb, packet_info *pinfo, proto_tree proto_tree *o242avaya_v_tree; proto_item *avaya_ti; const guint8 *avaya_option = NULL; - gchar *field = NULL; + guint8 *avaya_copy; + const gchar *field = NULL; wmem_strbuf_t *avaya_param_buf = NULL; /* minimum length is 5 bytes */ @@ -3196,7 +3197,8 @@ dissect_dhcpopt_avaya_ip_telephone(tvbuff_t *tvb, packet_info *pinfo, proto_tree avaya_ti = proto_tree_add_item_ret_string(tree, hf_dhcp_option242_avaya, tvb, offset, tvb_reported_length(tvb), ENC_ASCII|ENC_NA, wmem_packet_scope(), &avaya_option); o242avaya_v_tree = proto_item_add_subtree(avaya_ti, ett_dhcp_option242_suboption); avaya_param_buf = wmem_strbuf_new(wmem_packet_scope(), ""); - for ( field = strtok((char*)avaya_option, ","); field; field = strtok(NULL, ",") ) { + avaya_copy = g_strdup(avaya_option); + for ( field = strtok(avaya_copy, ","); field; field = strtok(NULL, ",") ) { if (!strchr(field, '=')) { if (wmem_strbuf_get_len(avaya_param_buf) == 0) { expert_add_info_format(pinfo, avaya_ti, &hf_dhcp_subopt_unknown_type, "ERROR, Unknown parameter %s", field); @@ -3214,6 +3216,7 @@ dissect_dhcpopt_avaya_ip_telephone(tvbuff_t *tvb, packet_info *pinfo, proto_tree wmem_strbuf_append(avaya_param_buf, field); } } + g_free(avaya_copy); if (wmem_strbuf_get_len(avaya_param_buf) > 0) { dissect_vendor_avaya_param(o242avaya_v_tree, pinfo, avaya_ti, tvb, offset, avaya_param_buf); } |