diff options
author | 2023-02-07 09:24:21 +0100 | |
---|---|---|
committer | 2023-02-07 09:24:21 +0100 | |
commit | 067af6b9098858e786e71ef20cb91ad75c6e4ba4 (patch) | |
tree | e619fe97120b66558c0d312a68750ddbd05e3510 | |
parent | set: ensure NULL is empty behaviour is retained throughout (diff) | |
download | portage-utils-067af6b9098858e786e71ef20cb91ad75c6e4ba4.tar.gz portage-utils-067af6b9098858e786e71ef20cb91ad75c6e4ba4.tar.bz2 portage-utils-067af6b9098858e786e71ef20cb91ad75c6e4ba4.zip |
set: try to silence Coverity
Now add_set_value can allocate a new set, Coverity thinks this will
actually happen, despite in these cases the input set not being NULL.
Help Coverity by adding a redundant if.
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
-rw-r--r-- | libq/tree.c | 3 | ||||
-rw-r--r-- | main.c | 12 |
2 files changed, 11 insertions, 4 deletions
diff --git a/libq/tree.c b/libq/tree.c index a05a86e2..f308c8d7 100644 --- a/libq/tree.c +++ b/libq/tree.c @@ -1709,7 +1709,8 @@ tree_match_atom_cache_populate_cb(tree_pkg_ctx *ctx, void *priv) cat_ctx = get_set(atom->CATEGORY, cache); if (cat_ctx == NULL) { cat_ctx = tree_open_cat(tctx, "."); - cache = add_set_value(atom->CATEGORY, cat_ctx, NULL, cache); + if (cache != NULL) /* for static code analysers */ + add_set_value(atom->CATEGORY, cat_ctx, NULL, cache); /* get a pointer from the set */ cat_ctx->name = contains_set(atom->CATEGORY, cache); } @@ -585,9 +585,15 @@ read_portage_file(const char *file, enum portage_file_type type, void *data) snprintf(npath, sizeof(npath), "%s:%zu:%zu-%zu", file, line, cbeg, cend); p = xstrdup(npath); - masks = add_set_value(buf, p, &e, masks); - if (e != NULL) - free(p); + /* if not necessary, but do it for static code analysers + * which take into accound that add_set_value might + * allocate a new set when masks would be NULL -- a case + * which would never happen */ + if (masks != NULL) { + add_set_value(buf, p, &e, masks); + if (e != NULL) + free(p); + } } } } |