Wireshark-commits: [Wireshark-commits] master 8cb41a9: Handle RADIUS ident reuse better.

From: Wireshark code review <code-review-do-not-reply@xxxxxxxxxxxxx>
Date: Mon, 14 Mar 2016 02:05:40 +0000 (UTC)
URL: https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=8cb41a93375145378b394ce82406cd57e9db8c71
Submitter: Michael Mann (mmann78@xxxxxxxxxxxx)
Changed: branch: master
Repository: wireshark

Commits:

8cb41a9 by Jeff Morriss (jeff.morriss.ws@xxxxxxxxx):

    Handle RADIUS ident reuse better.
    
    Rather than storing RADIUS calls in a map keyed by the ident and conversation
    store a tree of calls (using the the same key).  Store each (non-duplicate)
    call (request) in the tree, keyed by frame number.  When looking for a match
    (or a duplicate) look for the most-recently-seen frame in the tree (i.e., the
    most recent frame with the same ident + conversation).  Only declare a request
    a duplicate if the authenticator is identical (as per RFC 5080 section 2.2.2).
    
    Only store things in the map/tree on the first pass.
    
    Remove the 'request_ttl' preference: it's better to show the user when the
    response came back even if it was "late."  (This also allows duplicate request
    detection inside of the TTL.)
    
    When telling the user about a duplicate don't tell them the ident again: they
    already know that.  Tell them the frame number of the original.
    
    Use the FT_FRAMENUM_REQUEST/FT_FRAMENUM_RESPONSE hints.
    
    Move a couple structures from the header file to the C file: they're only used
    in the RADIUS dissector anyway.
    
    Bug: 4096
    Change-Id: I0e8bc0d23cd6b219cecd82f5c4cd765d28a14d98
    Reviewed-on: https://code.wireshark.org/review/14451
    Petri-Dish: Jeff Morriss <jeff.morriss.ws@xxxxxxxxx>
    Tested-by: Petri Dish Buildbot <buildbot-no-reply@xxxxxxxxxxxxx>
    Reviewed-by: Michael Mann <mmann78@xxxxxxxxxxxx>
    

Actions performed:

    from  c31f687   wmem-ify the Radius call table.
    adds  8cb41a9   Handle RADIUS ident reuse better.


Summary of changes:
 epan/dissectors/packet-radius.c |  286 ++++++++++++++++++++++-----------------
 epan/dissectors/packet-radius.h |   27 ----
 2 files changed, 160 insertions(+), 153 deletions(-)