From: Denis Ovsienko Date: Thu, 26 Jul 2018 12:16:11 +0000 (+0100) Subject: CLNP: squelch a fall-through warning (GH #618) X-Git-Tag: tcpdump-4.99-bp~1091 X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/eebb3f48e30f2cb31c3faaddce96dafc8faa10ca CLNP: squelch a fall-through warning (GH #618) This change addresses one of the warnings listed in the bug report. ./print-isoclns.c: In function ‘clnp_print’: ./print-isoclns.c:1054:16: warning: this statement may fall through [-Wimplicit-fallthrough=] if (EXTRACT_U_1(pptr) == NLPID_CLNP) { ^ ./print-isoclns.c:1061:9: note: here case CLNP_PDU_DT: ^~~~ [skip ci] --- diff --git a/print-isoclns.c b/print-isoclns.c index 38bdd833..241d6087 100644 --- a/print-isoclns.c +++ b/print-isoclns.c @@ -29,7 +29,7 @@ /* * specification: * - * CLNP: ISO 8473 + * CLNP: ISO 8473 (respective ITU version is at http://www.itu.int/rec/T-REC-X.233/en/) * ES-IS: ISO 9542 * IS-IS: ISO 10589 */ @@ -1058,6 +1058,18 @@ clnp_print(netdissect_options *ndo, break; } + /* The cases above break from the switch block if they see and print + * a CLNP header in the Data part. For an Error Report PDU this is + * described in Section 7.9.6 of ITU X.233 (1997 E), also known as + * ISO/IEC 8473-1:1998(E). It is not clear why in this code the same + * applies to an Echo Response PDU, as the standard does not specify + * the contents -- could be a proprietary extension or a bug. In either + * case, if the Data part does not contain a CLNP header, its structure + * is considered unknown and the decoding falls through to print the + * contents as-is. + */ + ND_FALL_THROUGH; + case CLNP_PDU_DT: case CLNP_PDU_MD: case CLNP_PDU_ERQ: