From dcc690d7e08f6d54fc10ee372510875a41ec9a3b Mon Sep 17 00:00:00 2001 From: Sebastian Krzyszkowiak Date: Thu, 19 Mar 2026 20:13:55 +0100 Subject: pkgAcqMetaClearSig: Abort transaction when pkgAcquire::Run has been cancelled Ongoing Run can be cancelled by returning false from ::Pulse(). In this case the items would still be called pkgAcquire::Item::Finished() as usual, causing pkgAcqMetaClearSig to commit the incomplete transaction anyway as at that point it's still Started and has no errors. Add a pkgAcquire::Item::Cancelled() method and use it in pkgAcqMetaClearSig to abort the transaction. Closes: #1078608 --- apt-pkg/acquire-item.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'apt-pkg/acquire-item.cc') diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index ca649a4b8..458868bec 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -868,6 +868,10 @@ void pkgAcquire::Item::RemoveAlternativeSite(std::string const &AltUriStr)/*{{{* std::string pkgAcquire::Item::ShortDesc() const /*{{{*/ { return DescURI(); +} + /*}}}*/ +void pkgAcquire::Item::Cancelled() /*{{{*/ +{ } /*}}}*/ void pkgAcquire::Item::Finished() /*{{{*/ @@ -2006,6 +2010,12 @@ string pkgAcqMetaClearSig::Custom600Headers() const return Header; } /*}}}*/ +void pkgAcqMetaClearSig::Cancelled() /*{{{*/ +{ + if (TransactionManager->State == TransactionStarted) + TransactionManager->AbortTransaction(); +} + /*}}}*/ void pkgAcqMetaClearSig::Finished() /*{{{*/ { if(_config->FindB("Debug::Acquire::Transaction", false) == true) -- cgit v1.2.3-70-g09d2