From 5502c0bc5754499e82a1e03ca5a24779adb6f485 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Sat, 25 May 2024 13:46:52 +0200 Subject: solver3: Do not dump sizes that are clearly pointers We use a union here, but we don't know if we last stored a pointer, so let's just reject clearly non-sizes. Generally this will work fine -- you will not have enough choices in a dependency that you can construct a valid pointer to a Version*, especially given that any Version * > sizeof(pkgCache::Header) already, given it is in the cache. --- apt-pkg/solver3.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apt-pkg') diff --git a/apt-pkg/solver3.cc b/apt-pkg/solver3.cc index 9831f7e14..f851a98b8 100644 --- a/apt-pkg/solver3.cc +++ b/apt-pkg/solver3.cc @@ -211,7 +211,7 @@ void APT::Solver::Work::Dump(pkgCache &cache) std::cerr << "Dirty "; if (optional) std::cerr << "Optional "; - std::cerr << "Item (" << size << "@" << depth << (upgrade ? "u" : "") << ") "; + std::cerr << "Item (" << ssize_t(size <= solutions.size() ? size : -1) << "@" << depth << (upgrade ? "u" : "") << ") "; if (auto Pkg = reason.Pkg(); Pkg != 0) std::cerr << pkgCache::PkgIterator(cache, cache.PkgP + Pkg).FullName(); if (auto Ver = reason.Ver(); Ver != 0) -- cgit v1.2.3-70-g09d2