summaryrefslogtreecommitdiff
path: root/apt-pkg/acquire.cc
diff options
context:
space:
mode:
authorSebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>2026-03-19 20:13:55 +0100
committerJulian Andres Klode <jak@debian.org>2026-05-01 16:12:00 +0000
commitdcc690d7e08f6d54fc10ee372510875a41ec9a3b (patch)
treef3aa3be72868832a2e9fb69806421fc3741f9943 /apt-pkg/acquire.cc
parent98cfa47c7437da0cf3fbb89aec9f38ea70d0a5de (diff)
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
Diffstat (limited to 'apt-pkg/acquire.cc')
-rw-r--r--apt-pkg/acquire.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc
index 95b6391cd..62d477f95 100644
--- a/apt-pkg/acquire.cc
+++ b/apt-pkg/acquire.cc
@@ -794,6 +794,10 @@ stop:
for (Queue *I = Queues; I != 0; I = I->Next)
I->Shutdown(false);
+ if (WasCancelled)
+ for (ItemIterator I = Items.begin(); I != Items.end(); ++I)
+ (*I)->Cancelled();
+
// Shut down the items
for (auto &Item : Items)
Item->Finished();