while (remaining >= 4) {
sec_vt_command cmd;
- guint16 len;
+ guint16 len, len_missalign;
gboolean cmd_end, cmd_must;
-
proto_item *ti;
proto_tree *tr;
+
cmd = (sec_vt_command)tvb_get_letohs(tvb, offset);
len = tvb_get_letohs(tvb, offset + 2);
cmd_end = cmd & SEC_VT_COMMAND_END;
offset += 2;
proto_tree_add_item(tr, hf_dcerpc_sec_vt_command_length, tvb,
- offset, 2, ENC_LITTLE_ENDIAN);
+ offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
switch (cmd) {
offset += len;
remaining -= (4 + len);
+
+ len_missalign = len & 1;
+
+ if (len_missalign) {
+ int l = 2-len_missalign;
+ proto_tree_add_text(tr, tvb, offset, l, "missalign");
+ offset += l;
+ remaining -= l;
+ }
+
proto_item_set_end(ti, tvb, offset);
if (cmd & SEC_VT_COMMAND_END) {