mqtt: Use guint for offset

Change-Id: Ie7b4a540e68121dbe5cd14a9aac80a1f9aae90b3
Reviewed-on: https://code.wireshark.org/review/24342
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
This commit is contained in:
Stig Bjørlykke 2017-11-11 11:06:53 +01:00 committed by Roland Knall
parent f35aa91c1a
commit eaee0678ce
1 changed files with 11 additions and 13 deletions

View File

@ -491,7 +491,7 @@ static void mqtt_user_decode_message(proto_tree *tree, proto_tree *mqtt_tree, pa
}
}
static guint32 dissect_string(tvbuff_t *tvb, proto_tree *tree, guint32 offset, int hf_len, int hf_value)
static guint dissect_string(tvbuff_t *tvb, proto_tree *tree, guint offset, int hf_len, int hf_value)
{
guint16 prop_len;
@ -503,15 +503,15 @@ static guint32 dissect_string(tvbuff_t *tvb, proto_tree *tree, guint32 offset, i
}
/* MQTT v5.0: dissect the MQTT properties */
static guint32 dissect_mqtt_properties(tvbuff_t *tvb, proto_tree *mqtt_tree, guint32 offset)
static guint dissect_mqtt_properties(tvbuff_t *tvb, proto_tree *mqtt_tree, guint offset)
{
proto_tree *mqtt_prop_tree;
proto_item *ti;
guint64 vbi;
const guint32 mqtt_prop_offset = dissect_uleb128(tvb, offset, &vbi);
const guint mqtt_prop_offset = dissect_uleb128(tvb, offset, &vbi);
/* Property Length field can be stored in uint32 */
const guint32 mqtt_prop_len = (guint32)vbi;
const guint mqtt_prop_len = (gint)vbi;
/* Add the MQTT branch to the main tree */
ti = proto_tree_add_item(mqtt_tree, hf_mqtt_property, tvb, offset, mqtt_prop_offset + mqtt_prop_len, ENC_NA);
@ -520,7 +520,7 @@ static guint32 dissect_mqtt_properties(tvbuff_t *tvb, proto_tree *mqtt_tree, gui
proto_tree_add_item(mqtt_prop_tree, hf_mqtt_property_len, tvb, offset, mqtt_prop_offset, ENC_BIG_ENDIAN);
offset += mqtt_prop_offset;
const guint32 bytes_to_read = offset + mqtt_prop_len;
const guint bytes_to_read = offset + mqtt_prop_len;
while (offset < bytes_to_read)
{
guint8 prop_id = tvb_get_guint8(tvb, offset);
@ -608,7 +608,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
conversation_t *conv;
mqtt_conv_t *mqtt;
guint32 offset = 0;
guint offset = 0;
static const int *publish_fields[] = {
&hf_mqtt_msg_type,
&hf_mqtt_dup_flag,
@ -814,8 +814,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
if (mqtt->runtime_proto_version == MQTT_PROTO_V50)
{
guint32 mqtt_prop_offset = dissect_mqtt_properties(tvb, mqtt_tree, offset);
offset += mqtt_prop_offset;
offset += dissect_mqtt_properties(tvb, mqtt_tree, offset);
}
mqtt_payload_len = tvb_reported_length(tvb) - offset;
@ -838,11 +837,10 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
if (mqtt->runtime_proto_version == MQTT_PROTO_V50)
{
guint32 mqtt_prop_offset = dissect_mqtt_properties(tvb, mqtt_tree, offset);
offset += mqtt_prop_offset;
offset += dissect_mqtt_properties(tvb, mqtt_tree, offset);
}
while (offset < (guint32)tvb_reported_length(tvb))
while (offset < tvb_reported_length(tvb))
{
mqtt_str_len = tvb_get_ntohs(tvb, offset);
proto_tree_add_item(mqtt_tree, hf_mqtt_topic_len, tvb, offset, 2, ENC_BIG_ENDIAN);
@ -874,7 +872,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
proto_tree_add_item(mqtt_tree, hf_mqtt_msgid, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
while (offset < (guint32)tvb_reported_length(tvb))
while (offset < tvb_reported_length(tvb))
{
mqtt_str_len = tvb_get_ntohs(tvb, offset);
proto_tree_add_item(mqtt_tree, hf_mqtt_topic_len, tvb, offset, 2, ENC_BIG_ENDIAN);
@ -897,7 +895,7 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
offset += dissect_mqtt_properties(tvb, mqtt_tree, offset);
}
while (offset < (guint32)tvb_reported_length(tvb))
while (offset < tvb_reported_length(tvb))
{
proto_tree_add_item(mqtt_tree, hf_mqtt_suback_qos, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;