From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id EF39D1382C5 for ; Thu, 29 Apr 2021 13:24:33 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 23C6AE0825; Thu, 29 Apr 2021 13:24:33 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 0B633E0825 for ; Thu, 29 Apr 2021 13:24:33 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id C413A341028 for ; Thu, 29 Apr 2021 13:24:31 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 279B0CC for ; Thu, 29 Apr 2021 13:24:30 +0000 (UTC) From: "Fabian Groffen" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Fabian Groffen" Message-ID: <1619702607.09b817763d3b03d9ccee92ddd4fa13edb82d53a9.grobian@gentoo> Subject: [gentoo-commits] proj/portage-utils:master commit in: libq/ X-VCS-Repository: proj/portage-utils X-VCS-Files: libq/tree.c X-VCS-Directories: libq/ X-VCS-Committer: grobian X-VCS-Committer-Name: Fabian Groffen X-VCS-Revision: 09b817763d3b03d9ccee92ddd4fa13edb82d53a9 X-VCS-Branch: master Date: Thu, 29 Apr 2021 13:24:30 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: ae38d5e9-2e45-426c-9403-1d1838b095b1 X-Archives-Hash: 10880fc35c3cd22622a474482d6e1d77 commit: 09b817763d3b03d9ccee92ddd4fa13edb82d53a9 Author: Fabian Groffen gentoo org> AuthorDate: Thu Apr 29 13:23:27 2021 +0000 Commit: Fabian Groffen gentoo org> CommitDate: Thu Apr 29 13:23:27 2021 +0000 URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=09b81776 tree: avoid crash in tree_foreach_packages when category doesn't exist This can be observed when reading a Packages file that refers to binpkgs that do not exist. Signed-off-by: Fabian Groffen gentoo.org> libq/tree.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libq/tree.c b/libq/tree.c index a947735..04bf468 100644 --- a/libq/tree.c +++ b/libq/tree.c @@ -1375,6 +1375,16 @@ tree_foreach_packages(tree_ctx *ctx, tree_pkg_cb callback, void *priv) tree_close_cat(cat); } pkg.cat_ctx = cat = tree_open_cat(ctx, atom->CATEGORY); + if (cat == NULL) { + /* probably dir doesn't exist or something, skip + * this one */ + memset(&meta, 0, sizeof(meta)); + if (len > 0) { /* hop over \n */ + p++; + len--; + } + continue; + } cat->pkg_ctxs = (tree_pkg_ctx **)atom; /* for name */ } pkgnamelen = snprintf(pkgname, sizeof(pkgname),