commit: baed7caa2b6e56545b5f3c29da7bc13c7658d0a8 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> AuthorDate: Mon May 6 06:40:33 2019 +0000 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> CommitDate: Mon May 6 06:40:33 2019 +0000 URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=baed7caa
qkeyword: correctly handle missing metadata.xml or email fields - if metadata.xml is absent, don't crash - if metadata.xml didn't contain an email, don't match as result Bug: https://bugs.gentoo.org/685132 Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> qkeyword.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/qkeyword.c b/qkeyword.c index e8fb5d6..ef61fba 100644 --- a/qkeyword.c +++ b/qkeyword.c @@ -639,10 +639,17 @@ qkeyword_results_cb(cache_pkg_ctx *pkg_ctx, void *priv) if (data->qmaint != NULL) { metadata = cache_read_metadata(pkg_ctx); + if (metadata == NULL) + return EXIT_SUCCESS; + for (emailw = metadata->email; emailw != NULL; emailw = emailw->next) { if (strcmp(emailw->addr, data->qmaint) != 0) break; } + if (metadata->email == NULL) + /* arbitrary pointer to trigger exit below */ + emailw = (struct elist *)buf; + cache_close_metadata(metadata); if (emailw != NULL) return EXIT_SUCCESS;