aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dhcp.c
diff options
context:
space:
mode:
authorJoerg Mayer <jmayer@loplof.de>2019-02-20 21:11:00 +0100
committerJörg Mayer <jmayer@loplof.de>2019-02-20 21:24:03 +0000
commitc28d8f937ad21829007b7330fbedeffdca4db558 (patch)
tree3d7eaa520ecbfc4c78e5064d2dc7d88d0766ae81 /epan/dissectors/packet-dhcp.c
parentc62dadd31f859a60b970f699992a5ddba837a42c (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.c7
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);
}