aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ses.c
diff options
context:
space:
mode:
authorGraeme Lunt <graeme.lunt@smhs.co.uk>2009-06-04 08:30:03 +0000
committerGraeme Lunt <graeme.lunt@smhs.co.uk>2009-06-04 08:30:03 +0000
commit99a105954f22841ab499251dd18d7a2ad8011613 (patch)
tree9e98196da6b7861e9a5c1c14df48c9ccf9c77740 /epan/dissectors/packet-ses.c
parentb66fa033ce9fd43c8b5aaa107ba392de6f93d0fb (diff)
A segmented DATA SPDU sequence of length one has user information.
svn path=/trunk/; revision=28634
Diffstat (limited to 'epan/dissectors/packet-ses.c')
-rw-r--r--epan/dissectors/packet-ses.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/epan/dissectors/packet-ses.c b/epan/dissectors/packet-ses.c
index 7d406b495c..34b63c2e9c 100644
--- a/epan/dissectors/packet-ses.c
+++ b/epan/dissectors/packet-ses.c
@@ -626,14 +626,25 @@ dissect_parameter(tvbuff_t *tvb, int offset, proto_tree *tree,
}
if (flags & END_SPDU) {
/*
- * In Data Transfer and Typed Data SPDUs,
+ * In Data Transfer and Typed Data SPDUs, (X.225: 8.3.{11,13}.4)
* "The User Information Field shall be present
* if the Enclosure Item is not present, or has
* bit 2 = 0", which presumably means it shall
* *not* be present if the Enclosure item *is*
* present and has bit 2 = 1.
*/
- has_user_information = FALSE;
+
+ if(!(flags & BEGINNING_SPDU)) {
+ /* X.225 7.11.2 also states:
+ * "All DATA TRANSFER SPDUs, except the last DATA TRANSFER SPDU in a sequence greater than one, must have user information"
+ * So if BEGINNING_SPDU and END_SPDU are set in the enclosure item, then this is presumably a sequence of one and
+ * consequently there must be user information.
+ *
+ * So, there is only no user information if *only* END_SPDU is set.
+ */
+
+ has_user_information = FALSE;
+ }
}
break;