From ToddS via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5299 :
authormorriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 15 Oct 2010 17:10:29 +0000 (17:10 +0000)
committermorriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 15 Oct 2010 17:10:29 +0000 (17:10 +0000)
In profinet plugin, there is a dissection based on whether the read data
returned is expected to contain a single or multiple blocks. Currently, the
I&M0FilterData case assumes only a single block is returned. Profinet specifies
two optional additional blocks.

This change moves I&M0FilterData to expect multiple blocks to correct decode
the optional information.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@34523 f5534014-38df-0310-8fa8-9805f1628bb7

plugins/profinet/packet-dcerpc-pn-io.c

index 299c0caa12e3391a5bdb0ae6664588c0132e6b53..df6f42edb19be8912250350d61ff35efad105f0d 100644 (file)
@@ -7204,7 +7204,6 @@ dissect_RecordDataRead(tvbuff_t *tvb, int offset,
     case(0xf821):   /* APIData */
     case(0xf830):   /* LogData */
     case(0xf831):   /* PDevData */
-    case(0xf840):   /* I&M0FilterData */
         offset = dissect_block(tvb, offset, pinfo, tree, drep, &u16Index, &u32RecDataLen, &ar);
         break;
 
@@ -7272,6 +7271,7 @@ dissect_RecordDataRead(tvbuff_t *tvb, int offset,
     case(0xf00c):   /* Diagnosis, Maintenance, Qualified and Status for one API */
 
     case(0xf80c):   /* Diagnosis, Maintenance, Qualified and Status for one device */
+    case(0xf840):   /* I&M0FilterData */
     case(0xf841):   /* PDRealData */
     case(0xf842):   /* PDExpectedData */
         offset = dissect_blocks(tvb, offset, pinfo, tree, drep);