From b5f1c0d88be57d10db5b06b07d0b0ea4aa220bcd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Thu, 11 Feb 2021 09:17:46 +0100 Subject: [PATCH] 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. --- src/udev/udev-rules.c | 1 + 1 file changed, 1 insertion(+) 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)) { -- 2.47.3