From: Alberto Leiva Popper Date: Mon, 26 Jun 2023 18:16:24 +0000 (-0600) Subject: Fix multiple evaluation of HASH_ADD_STR argument X-Git-Tag: 1.6.0~80^2~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d5a51f30bc484558b15b909eaaf2716f29f27a78;p=thirdparty%2FFORT-validator.git Fix multiple evaluation of HASH_ADD_STR argument This bug was introduced by 330240b2b5de670858a492703f016da21cc374bd. --- diff --git a/src/visited_uris.c b/src/visited_uris.c index e935e6e2..5539ca24 100644 --- a/src/visited_uris.c +++ b/src/visited_uris.c @@ -91,8 +91,13 @@ elem_find(struct visited_uris *list, char const *uri) void visited_uris_add(struct visited_uris *uris, char const *uri) { - if (elem_find(uris, uri) == NULL) - HASH_ADD_STR(uris->table, uri, visited_elem_create(uri)); + struct visited_elem *node; + + if (elem_find(uris, uri) == NULL) { + /* Do not inline; HASH_ADD_STR expands "add" multiple times. */ + node = visited_elem_create(uri); + HASH_ADD_STR(uris->table, uri, node); + } } int