From: Yu Watanabe Date: Tue, 11 Jun 2024 16:16:55 +0000 (+0900) Subject: udev: rewrite token_match_attr() to make it easier for Coverity to understand X-Git-Tag: v257-rc1~1204 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=442c6bd4ba6bb207e5cc615c986dee4590e0ce34;p=thirdparty%2Fsystemd.git udev: rewrite token_match_attr() to make it easier for Coverity to understand No functional change. Closes CID#1469719. --- diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index 581bbaf3459..366f7ba92cd 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -1771,27 +1771,28 @@ static bool token_match_attr(UdevRuleToken *token, sd_device *dev, UdevEvent *ev case SUBST_TYPE_PLAIN: if (sd_device_get_sysattr_value(dev, name, &value) < 0) return false; - break; + + /* remove trailing whitespace, if not asked to match for it */ + if (token->attr_match_remove_trailing_whitespace) { + strscpy(vbuf, sizeof(vbuf), value); + value = delete_trailing_chars(vbuf, NULL); + } + + return token_match_string(token, value); + case SUBST_TYPE_SUBSYS: if (udev_resolve_subsys_kernel(name, vbuf, sizeof(vbuf), true) < 0) return false; - value = vbuf; - break; - default: - assert_not_reached(); - } - /* remove trailing whitespace, if not asked to match for it */ - if (token->attr_match_remove_trailing_whitespace) { - if (value != vbuf) { - strscpy(vbuf, sizeof(vbuf), value); - value = vbuf; - } + /* remove trailing whitespace, if not asked to match for it */ + if (token->attr_match_remove_trailing_whitespace) + delete_trailing_chars(vbuf, NULL); - delete_trailing_chars(vbuf, NULL); - } + return token_match_string(token, vbuf); - return token_match_string(token, value); + default: + assert_not_reached(); + } } static int get_property_from_string(char *line, char **ret_key, char **ret_value) {