diff options
author | Fabian Groffen <grobian@gentoo.org> | 2019-05-06 08:40:33 +0200 |
---|---|---|
committer | Fabian Groffen <grobian@gentoo.org> | 2019-05-06 08:40:33 +0200 |
commit | baed7caa2b6e56545b5f3c29da7bc13c7658d0a8 (patch) | |
tree | 97d4a049fa2dbb2f71c84e2518c447923f6f30b6 | |
parent | qdepends: allow custom formatting (diff) | |
download | portage-utils-baed7caa2b6e56545b5f3c29da7bc13c7658d0a8.tar.gz portage-utils-baed7caa2b6e56545b5f3c29da7bc13c7658d0a8.tar.bz2 portage-utils-baed7caa2b6e56545b5f3c29da7bc13c7658d0a8.zip |
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@gentoo.org>
-rw-r--r-- | qkeyword.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -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; |