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;

Reply via email to