Wireshark-commits: [Wireshark-commits] master 961f138: wiretap: fix truncated reads while reading c

From: Wireshark code review <code-review-do-not-reply@xxxxxxxxxxxxx>
Date: Sat, 10 Nov 2018 23:24:11 +0000
URL: https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=961f1388e443b5b08594ec7e9a8d9628f039d4d0
Submitter: "Michael Mann <mmann78@xxxxxxxxxxxx>"
Changed: branch: master
Repository: wireshark

Commits:

961f138 by Peter Wu (peter@xxxxxxxxxxxxx):

    wiretap: fix truncated reads while reading compressed file formats
    
    A lot of file dissectors (pcapng, json, etc.) assumed that the packet
    size is equal to the file size. This is not true if the file was
    compressed and could result in silently truncating reads or failing to
    open a file (if the compressed file is larger than the actual data).
    
    Observe that a lot of file dissectors are simply copies of each other.
    Move the fixed implementation to wtap.c and reuse the methods everywhere
    else. While at it, avoid an unnecessary large allocation/read in
    ruby_marshal.
    
    Change-Id: I8e9cd0af9c4d1bd37789a3b509146ae2182a5379
    Reviewed-on: https://code.wireshark.org/review/30570
    Petri-Dish: Peter Wu <peter@xxxxxxxxxxxxx>
    Reviewed-by: Dario Lombardo <lomato@xxxxxxxxx>
    Tested-by: Dario Lombardo <lomato@xxxxxxxxx>
    Tested-by: Petri Dish Buildbot
    Reviewed-by: Michael Mann <mmann78@xxxxxxxxxxxx>
    

Actions performed:

    from  a0bb983   ieee80211: Fix Vendor Specific Fixed Field dissection.
     add  961f138   wiretap: fix truncated reads while reading compressed file formats


Summary of changes:
 test/suite_fileformats.py |  14 +++++++
 wiretap/ber.c             |  69 +------------------------------
 wiretap/json.c            |  72 +++------------------------------
 wiretap/json.h            |  12 ------
 wiretap/mime_file.c       |  81 +------------------------------------
 wiretap/rfc7468.c         |  69 +------------------------------
 wiretap/ruby_marshal.c    | 101 +++-------------------------------------------
 wiretap/tnef.c            |  70 +-------------------------------
 wiretap/wtap-int.h        |  13 ++++++
 wiretap/wtap.c            |  89 ++++++++++++++++++++++++++++++++++++++++
 10 files changed, 136 insertions(+), 454 deletions(-)