aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-bacapp.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2008-03-03 20:15:05 +0000
committerAnders Broman <anders.broman@ericsson.com>2008-03-03 20:15:05 +0000
commit2c4c5a086b69fd2264ce0dc99ed3000432373fac (patch)
tree13d13512b587f872501f6b60f2a30bb9a9a9983e /epan/dissectors/packet-bacapp.c
parent76c146ee9739ad36b8d93dcd3504a07b4031a886 (diff)
From Alan McBride :
BACnet handling of readPropertyMultiple request / response. svn path=/trunk/; revision=24537
Diffstat (limited to 'epan/dissectors/packet-bacapp.c')
-rw-r--r--epan/dissectors/packet-bacapp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/epan/dissectors/packet-bacapp.c b/epan/dissectors/packet-bacapp.c
index 4f8a546e17..af8bb031a1 100644
--- a/epan/dissectors/packet-bacapp.c
+++ b/epan/dissectors/packet-bacapp.c
@@ -4520,6 +4520,7 @@ fReadAccessSpecification (tvbuff_t *tvb, proto_tree *subtree, guint offset)
guint lastoffset = 0;
guint8 tag_no, tag_info;
guint32 lvt;
+ proto_item *tt;
while ((tvb_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
@@ -4536,6 +4537,8 @@ fReadAccessSpecification (tvbuff_t *tvb, proto_tree *subtree, guint offset)
break;
case 1: /* listOfPropertyReferences */
if (tag_is_opening(tag_info)) {
+ tt = proto_tree_add_text(subtree, tvb, offset, 1, "listOfPropertyReferences");
+ subtree = proto_item_add_subtree(tt, ett_bacapp_value);
offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
offset = fBACnetPropertyReference (tvb, subtree, offset, 1);
break;
@@ -4565,7 +4568,7 @@ fReadAccessResult (tvbuff_t *tvb, proto_tree *tree, guint offset)
if (tag_is_closing(tag_info)) {
offset += fTagHeaderTree (tvb, subtree, offset,
&tag_no, &tag_info, &lvt);
- if (tag_no == 4 || tag_no == 5) subtree = tree; /* Value and error have extra subtree */
+ if ((tag_no == 4 || tag_no == 5) && (subtree != tree)) subtree = subtree->parent; /* Value and error have extra subtree */
continue;
}