From: Kay Sievers Date: Thu, 13 Nov 2008 17:21:28 +0000 (+0100) Subject: remove len == 0 check, the index root is always '\0' X-Git-Tag: 174~1320 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=949075dbbdbc2a10b38e5022a4f51d39e391deca;ds=sidebyside remove len == 0 check, the index root is always '\0' --- diff --git a/udev/udev-rules.c b/udev/udev-rules.c index 796d2c157..df9fc7877 100644 --- a/udev/udev-rules.c +++ b/udev/udev-rules.c @@ -451,15 +451,10 @@ static int add_string(struct udev_rules *rules, const char *str) unsigned int off; struct trie_node *parent; - len = strlen(str); - - /* offset 0 is always '\0' */ - if (len == 0) - return 0; - /* walk trie, start from last character of str to find matching tails */ - node_idx = 0; + len = strlen(str); key = str[len-1]; + node_idx = 0; for (depth = 0; depth <= len; depth++) { struct trie_node *node; unsigned int child_idx; @@ -1723,7 +1718,7 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names) if (rules->trie_nodes == NULL) return NULL; rules->trie_nodes_max = PREALLOC_TRIE; - /* offset 0 is the trie root */ + /* offset 0 is the trie root, with an empty string */ memset(rules->trie_nodes, 0x00, sizeof(struct trie_node)); rules->trie_nodes_cur = 1;