From: Zbigniew Jędrzejewski-Szmek Date: Thu, 11 Feb 2021 08:17:46 +0000 (+0100) Subject: udev: add assert to make coverity happy X-Git-Tag: v248-rc1~154^2~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b5f1c0d88be57d10db5b06b07d0b0ea4aa220bcd;p=thirdparty%2Fsystemd.git udev: add assert to make coverity happy Coverity says: CID 1446387 (#1 of 1): Bad bit shift operation (BAD_SHIFT) 8. negative_shift: In expression 1U << (int)cmd, shifting by a negative amount has undefined behavior. The shift amount, cmd, is -22. I don't think there's any issue, unless we forget to set token->data appropriately. Let's add an assert. --- diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index e12225ca39c..96a391c07c8 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -1773,6 +1773,7 @@ static int udev_rule_apply_token_to_event( } case TK_M_IMPORT_BUILTIN: { UdevBuiltinCommand cmd = PTR_TO_UDEV_BUILTIN_CMD(token->data); + assert(cmd >= 0 && cmd < _UDEV_BUILTIN_MAX); unsigned mask = 1U << (int) cmd; if (udev_builtin_run_once(cmd)) {