Turns out the valgrind messages aren't regressions either. Here's the older apt packages again which seemed to work okay: ==25043== ==25043== HEAP SUMMARY: ==25043== in use at exit: 13,118,211 bytes in 170,033 blocks ==25043== total heap usage: 626,066 allocs, 456,033 frees, 69,255,845 bytes allocated ==25043== ==25043== LEAK SUMMARY: ==25043== definitely lost: 0 bytes in 0 blocks ==25043== indirectly lost: 0 bytes in 0 blocks ==25043== possibly lost: 0 bytes in 0 blocks ==25043== still reachable: 13,118,211 bytes in 170,033 blocks ==25043== suppressed: 0 bytes in 0 blocks ==25043== Rerun with --leak-check=full to see details of leaked memory ==25043== ==25043== For counts of detected and suppressed errors, rerun with: -v ==25043== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) ==23213== Conditional jump or move depends on uninitialised value(s) ==23213== at 0x4F4D240: pkgCache::ReMap(bool const&) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4F55598: ??? (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4F577E4: ??? (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4EBA081: pkgCacheFile::BuildCaches(OpProgress*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x51EC5A1: DoUpdate(CommandLine&) (in /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0) ==23213== by 0x4ECDFA5: CommandLine::DispatchArg(CommandLine::Dispatch const*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x51BEDF2: DispatchCommandLine(CommandLine&, std::vector > const&) (in /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0) ==23213== by 0x10BB38: ??? (in /usr/bin/apt-get) ==23213== by 0x59B482F: (below main) (libc-start.c:291) ==23213== Uninitialised value was created by a stack allocation ==23213== at 0x4F5527D: ??? (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== ==23213== Syscall param write(buf) points to uninitialised byte(s) ==23213== at 0x5A8A6E0: __write_nocancel (syscall-template.S:84) ==23213== by 0x4ED5CAB: FileFd::Write(void const*, unsigned long long) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4E7A150: ??? (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4F57876: ??? (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4EBA081: pkgCacheFile::BuildCaches(OpProgress*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x51EC5A1: DoUpdate(CommandLine&) (in /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0) ==23213== by 0x4ECDFA5: CommandLine::DispatchArg(CommandLine::Dispatch const*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x51BEDF2: DispatchCommandLine(CommandLine&, std::vector > const&) (in /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0) ==23213== by 0x10BB38: ??? (in /usr/bin/apt-get) ==23213== by 0x59B482F: (below main) (libc-start.c:291) ==23213== Address 0xe401007 is in a rw- anonymous segment ==23213== ==23213== Syscall param write(buf) points to uninitialised byte(s) ==23213== at 0x5A8A6E0: __write_nocancel (syscall-template.S:84) ==23213== by 0x4ED5CAB: FileFd::Write(void const*, unsigned long long) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4E7A1A7: ??? (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4F57876: ??? (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4EBA081: pkgCacheFile::BuildCaches(OpProgress*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x51EC5A1: DoUpdate(CommandLine&) (in /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0) ==23213== by 0x4ECDFA5: CommandLine::DispatchArg(CommandLine::Dispatch const*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x51BEDF2: DispatchCommandLine(CommandLine&, std::vector > const&) (in /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0) ==23213== by 0x10BB38: ??? (in /usr/bin/apt-get) ==23213== by 0x59B482F: (below main) (libc-start.c:291) ==23213== Address 0xe401007 is in a rw- anonymous segment ==23213== ==23213== Syscall param write(buf) points to uninitialised byte(s) ==23213== at 0x5A8A6E0: __write_nocancel (syscall-template.S:84) ==23213== by 0x4ED5CAB: FileFd::Write(void const*, unsigned long long) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4E7A150: ??? (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4F574E4: ??? (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4EBA081: pkgCacheFile::BuildCaches(OpProgress*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x51EC5A1: DoUpdate(CommandLine&) (in /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0) ==23213== by 0x4ECDFA5: CommandLine::DispatchArg(CommandLine::Dispatch const*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x51BEDF2: DispatchCommandLine(CommandLine&, std::vector > const&) (in /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0) ==23213== by 0x10BB38: ??? (in /usr/bin/apt-get) ==23213== by 0x59B482F: (below main) (libc-start.c:291) ==23213== Address 0xe401007 is in a rw- anonymous segment ==23213== ==23213== Syscall param write(buf) points to uninitialised byte(s) ==23213== at 0x5A8A6E0: __write_nocancel (syscall-template.S:84) ==23213== by 0x4ED5CAB: FileFd::Write(void const*, unsigned long long) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4E7A1A7: ??? (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4F574E4: ??? (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4EBA081: pkgCacheFile::BuildCaches(OpProgress*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x51EC5A1: DoUpdate(CommandLine&) (in /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0) ==23213== by 0x4ECDFA5: CommandLine::DispatchArg(CommandLine::Dispatch const*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x51BEDF2: DispatchCommandLine(CommandLine&, std::vector > const&) (in /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0) ==23213== by 0x10BB38: ??? (in /usr/bin/apt-get) ==23213== by 0x59B482F: (below main) (libc-start.c:291) ==23213== Address 0xe401007 is in a rw- anonymous segment ==23213== Reading package lists... Done ==23213== Conditional jump or move depends on uninitialised value(s) ==23213== at 0x4F4D240: pkgCache::ReMap(bool const&) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4F4D56F: pkgCache::pkgCache(MMap*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x4EBA12C: pkgCacheFile::BuildCaches(OpProgress*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x51EC5A1: DoUpdate(CommandLine&) (in /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0) ==23213== by 0x4ECDFA5: CommandLine::DispatchArg(CommandLine::Dispatch const*, bool) (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== by 0x51BEDF2: DispatchCommandLine(CommandLine&, std::vector > const&) (in /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0) ==23213== by 0x10BB38: ??? (in /usr/bin/apt-get) ==23213== by 0x59B482F: (below main) (libc-start.c:291) ==23213== Uninitialised value was created by a stack allocation ==23213== at 0x4F05CA0: ??? (in /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0) ==23213== W: http://mirrors.kernel.org/ubuntu/dists/precise-updates/InRelease: Signature by key 630239CC130E1A7FD81A27B140976EAF437D05B5 uses weak digest algorithm (SHA1) W: http://mirrors.kernel.org/ubuntu/dists/precise-security/InRelease: Signature by key 630239CC130E1A7FD81A27B140976EAF437D05B5 uses weak digest algorithm (SHA1) W: http://mirrors.kernel.org/ubuntu/dists/precise-proposed/InRelease: Signature by key 630239CC130E1A7FD81A27B140976EAF437D05B5 uses weak digest algorithm (SHA1) W: http://archive.canonical.com/ubuntu/dists/precise/Release.gpg: Signature by key 630239CC130E1A7FD81A27B140976EAF437D05B5 uses weak digest algorithm (SHA1) W: http://mirrors.kernel.org/ubuntu/dists/precise/Release.gpg: Signature by key 630239CC130E1A7FD81A27B140976EAF437D05B5 uses weak digest algorithm (SHA1) ==23213== ==23213== HEAP SUMMARY: ==23213== in use at exit: 94,905 bytes in 307 blocks ==23213== total heap usage: 1,984,927 allocs, 1,984,620 frees, 138,038,621 bytes allocated ==23213== ==23213== LEAK SUMMARY: ==23213== definitely lost: 0 bytes in 0 blocks ==23213== indirectly lost: 0 bytes in 0 blocks ==23213== possibly lost: 0 bytes in 0 blocks ==23213== still reachable: 94,905 bytes in 307 blocks ==23213== suppressed: 0 bytes in 0 blocks ==23213== Rerun with --leak-check=full to see details of leaked memory ==23213== ==23213== For counts of detected and suppressed errors, rerun with: -v ==23213== ERROR SUMMARY: 6 errors from 6 contexts (suppressed: 0 from 0)