Don't handle various "command to send" values in the default case.

The default case ignores the high-order bit, which is set in all the
values for "command to send", so they will never be matched.  The values
moved out of the default case, if their upper bit is clear, either don't
correspond to any command in T.30 or correspond to an initial
identification command, which never has the upper bit set, so there's no
risk of misidentification by processing all of the "command to send"
values outside the default case.

Thanks and a tip of the Hatlo hat to Visual Studio Code Analysis for
catching this one.

Change-Id: I6192b0c5a6dcfd31b9fd757be736a311a9d089e6
Reviewed-on: https://code.wireshark.org/review/26198
Reviewed-by: Guy Harris <guy@alum.mit.edu>
This commit is contained in:
Guy Harris 2018-02-28 17:52:34 -08:00
parent 620f69a74b
commit efd8beff4f
1 changed files with 5 additions and 3 deletions

View File

@ -987,8 +987,13 @@ dissect_t30_hdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
break;
case T30_FC_CIG:
case T30_FC_PWD:
case T30_FC_SEP:
case T30_FC_PSA:
dissect_t30_numbers(tvb, offset, pinfo, frag_len, tr_fif, t38);
break;
case T30_FC_NSC:
dissect_t30_non_standard_cap(tvb, offset, pinfo, frag_len, tr_fif);
break;
default:
switch (octet & 0x7F) {
case T30_FC_DIS:
@ -999,14 +1004,11 @@ dissect_t30_hdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
break;
case T30_FC_CSI:
case T30_FC_TSI:
case T30_FC_SEP:
case T30_FC_SUB:
case T30_FC_SID:
case T30_FC_PSA:
dissect_t30_numbers(tvb, offset, pinfo, frag_len, tr_fif, t38);
break;
case T30_FC_NSF:
case T30_FC_NSC:
case T30_FC_NSS:
dissect_t30_non_standard_cap(tvb, offset, pinfo, frag_len, tr_fif);
break;