aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-smb.c
diff options
context:
space:
mode:
authormorriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7>2011-05-27 01:57:33 +0000
committermorriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7>2011-05-27 01:57:33 +0000
commitf4572c702f3a4b7776a9596366a8652b33412a14 (patch)
tree5f853f8d5a3726dec98475450aeb995c8fd891f3 /epan/dissectors/packet-smb.c
parentd23375efe98f94a07c169ec5e4ba9a6312c07b7c (diff)
Treat TVBs as opaque: use the accessor functions instead of accessing the fields
directly. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@37420 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-smb.c')
-rw-r--r--epan/dissectors/packet-smb.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/epan/dissectors/packet-smb.c b/epan/dissectors/packet-smb.c
index 78318d2147..4be2a3ad17 100644
--- a/epan/dissectors/packet-smb.c
+++ b/epan/dissectors/packet-smb.c
@@ -6575,22 +6575,29 @@ dissect_read_andx_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (fid_info->fsi->filename)
eo_info->filename = (gchar *) fid_info->fsi->filename;
if(!eo_info->filename) eo_info->filename = ep_strdup_printf("\\FILEID_%i",fid);
- eo_info->fid_type = fid_info->type; eo_info->end_of_file = fid_info->end_of_file;
- } else { eo_info->fid_type=SMB_FID_TYPE_UNKNOWN;
- eo_info->filename = ep_strdup_printf("\\FILEID_%i",fid); eo_info->end_of_file = 0;
- } eo_info->fid=fid;
- eo_info->tid=si->tid; eo_info->uid=si->uid;
- eo_info->payload_len = datalen; eo_info->payload_data = data_tvb->real_data;
- eo_info->smb_file_offset=rwi->offset; eo_info->smb_chunk_len=rwi->len;
+ eo_info->fid_type = fid_info->type;
+ eo_info->end_of_file = fid_info->end_of_file;
+ } else {
+ eo_info->fid_type=SMB_FID_TYPE_UNKNOWN;
+ eo_info->filename = ep_strdup_printf("\\FILEID_%i",fid);
+ eo_info->end_of_file = 0;
+ }
+ eo_info->fid=fid;
+ eo_info->tid=si->tid;
+ eo_info->uid=si->uid;
+ eo_info->payload_len = datalen;
+ eo_info->payload_data = tvb_get_ptr(data_tvb, 0, datalen);
+ eo_info->smb_file_offset=rwi->offset;
+ eo_info->smb_chunk_len=rwi->len;
eo_info->cmd=SMB_COM_READ_ANDX;
/* Queue data to the listener */
tap_queue_packet(smb_eo_tap, pinfo, eo_info);
}
- END_OF_SMB
+ END_OF_SMB
- if (cmd != 0xff) { /* there is an andX command */
+ if (cmd != 0xff) { /* there is an andX command */
if (andxoffset < offset)
THROW(ReportedBoundsError);
dissect_smb_command(tvb, pinfo, andxoffset, smb_tree, cmd, FALSE);
@@ -6815,7 +6822,7 @@ d);) */
eo_info->tid=si->tid;
eo_info->uid=si->uid;
eo_info->payload_len = datalen;
- eo_info->payload_data = data_tvb->real_data;
+ eo_info->payload_data = tvb_get_ptr(data_tvb, 0, datalen);
eo_info->smb_file_offset=rwi->offset;
eo_info->smb_chunk_len=rwi->len;
eo_info->cmd=SMB_COM_WRITE_ANDX;