summaryrefslogtreecommitdiff
path: root/frame_tvbuff.c
diff options
context:
space:
mode:
authorJakub Zawadzki <darkjames-ws@darkjames.pl>2013-07-15 05:28:20 +0000
committerJakub Zawadzki <darkjames-ws@darkjames.pl>2013-07-15 05:28:20 +0000
commit94e8ddf525adf8b8f6cd5ce35c666e4133246369 (patch)
tree89156f46cac8bbadd4604616e7fc0e33b00cad6f /frame_tvbuff.c
parentb99a650455d9ff806a20a9779b59c13451b0e2b5 (diff)
downloadwireshark-94e8ddf525adf8b8f6cd5ce35c666e4133246369.tar.gz
Fix misassembly problems in CAP-LINK_ETH-20030618-150138.5VW
When reading packet we need to read whole one including tvb_frame->offset, not only tvb->length svn path=/trunk/; revision=50606
Diffstat (limited to 'frame_tvbuff.c')
-rw-r--r--frame_tvbuff.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/frame_tvbuff.c b/frame_tvbuff.c
index 468dadc5ac..124fd094f3 100644
--- a/frame_tvbuff.c
+++ b/frame_tvbuff.c
@@ -56,7 +56,7 @@ frame_read(struct tvb_frame *frame_tvb, struct wtap_pkthdr *phdr, Buffer *buf)
if (cfile.wth != frame_tvb->wth)
return FALSE;
- if (!wtap_seek_read(frame_tvb->wth, frame_tvb->file_off, phdr, buf, frame_tvb->tvb.length, &err, &err_info)) {
+ if (!wtap_seek_read(frame_tvb->wth, frame_tvb->file_off, phdr, buf, frame_tvb->tvb.length + frame_tvb->offset, &err, &err_info)) {
switch (err) {
case WTAP_ERR_UNSUPPORTED_ENCAP:
case WTAP_ERR_BAD_FILE:
@@ -77,7 +77,7 @@ frame_cache(struct tvb_frame *frame_tvb)
frame_tvb->buf = (struct Buffer *) g_malloc(sizeof(struct Buffer));
/* XXX, register frame_tvb to some list which frees from time to time not used buffers :] */
- buffer_init(frame_tvb->buf, frame_tvb->tvb.length);
+ buffer_init(frame_tvb->buf, frame_tvb->tvb.length + frame_tvb->offset);
if (!frame_read(frame_tvb, &phdr, frame_tvb->buf))
{ /* TODO: THROW(???); */ }