Implementation note on the same function. metaIndex::swapLoad (apt- pkg/metaindex.cc:122-137) swaps eight fields (SignedBy, Suite, Codename, Date, ValidUntil, SupportsAcquireByHash, Entries, LoadedSuccessfully). It then assigns four others the other way round: "OldMetaIndex->Origin = Origin;" and the same for Label, Version and DefaultPin. The caller deletes the old object right after (acquire-item.cc:1871-1882), so those four assignments have no effect, and the surviving parser keeps the values of the downloaded, older Release for those fields, not the values of the kept local one.
I found no visible consequence in 3.2.0. The code that compares those fields, the "Repository ... changed its Origin/Label/..." check, only runs when LastMetaIndexParser is not null (acquire-item.cc:1899), and this path sets it to null. The four lines probably want to be "Origin = OldMetaIndex->Origin;" and so on, or to be swapped like the others. A fix for the SignedBy problem in this bug touches the same function. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2172092 Title: apt update: bogus "Missing Signed-By" notice, and no message, when the mirror serves an older Release than the local one To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/2172092/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
