The `interp_mac2str` function concludes with a `switch` followed by a `return` statement. The `switch` has one case falling through to a default: switch (expr) { case X: // ... X code ... default: // ... default code ... } This is equivalent to the simpler and more readily comprehensible: if (expr == X) { // ... X code ... } // ... default code ... Replace the former with the latter. Doing so makes it obvious that the following `return` statement is never reached. Remove it. Signed-off-by: Jeremy Sowden <jeremy@xxxxxxxxxx> --- filter/ulogd_filter_HWHDR.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/filter/ulogd_filter_HWHDR.c b/filter/ulogd_filter_HWHDR.c index 10c95c4e9bb0..d756d35577f0 100644 --- a/filter/ulogd_filter_HWHDR.c +++ b/filter/ulogd_filter_HWHDR.c @@ -207,19 +207,17 @@ static int interp_mac2str(struct ulogd_pluginstance *pi) okey_set_u16(&ret[KEY_MAC_TYPE], type); } - switch (type) { - case ARPHRD_ETHER: - parse_ethernet(ret, inp); - default: - if (!pp_is_valid(inp, KEY_RAW_MAC)) - return ULOGD_IRET_OK; - /* convert raw header to string */ - return parse_mac2str(ret, - ikey_get_ptr(&inp[KEY_RAW_MAC]), - KEY_MAC_ADDR, - ikey_get_u16(&inp[KEY_RAW_MACLEN])); - } - return ULOGD_IRET_OK; + if (type == ARPHRD_ETHER) + parse_ethernet(ret, inp); + + if (!pp_is_valid(inp, KEY_RAW_MAC)) + return ULOGD_IRET_OK; + + /* convert raw header to string */ + return parse_mac2str(ret, + ikey_get_ptr(&inp[KEY_RAW_MAC]), + KEY_MAC_ADDR, + ikey_get_u16(&inp[KEY_RAW_MACLEN])); } -- 2.33.0