Package: libdb5.3 Version: 5.3.28+dfsg2-1 Severity: normal Dear Maintainer,
On bookworm/ppc64el, with configs unchanged from https://unix.stackexchange.com/a/403489/162189 and some random debs in pool/: $ valgrind apt-ftparchive generate -c=aptftp.conf aptgenerate.conf ==785== Conditional jump or move depends on uninitialised value(s) ==785== at 0x4A0A778: __bam_stkrel (bt_search.c:985) ==785== by 0x49F7A0B: __bamc_put (bt_cursor.c:2266) ==785== by 0x4AD93B3: __dbc_iput (db_cam.c:2136) ==785== by 0x4ADBB43: __dbc_put (db_cam.c:2049) ==785== by 0x4AD2E1B: __db_put (db_am.c:583) ==785== by 0x4AEE53F: __db_put_pp (db_iface.c:1663) ==785== by 0x1A1A1F: Put (cachedb.h:75) ==785== by 0x1A1A1F: CacheDB::LoadControl() (cachedb.cc:360) ==785== by 0x1A39E7: CacheDB::GetFileInfo(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, bool const&, bool const&, bool, unsigned int, bool const&) (cachedb.cc:290) ==785== by 0x1B69D7: PackagesWriter::DoPackage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (writer.cc:409) ==785== by 0x1B001F: FTWScanner::ProcessFile(char const*, bool) (writer.cc:156) ==785== by 0x1B090B: operator()<const std::pair<std::__cxx11::basic_string<char>, bool>&> (writer.cc:217) ==785== by 0x1B090B: operator()<__gnu_cxx::__normal_iterator<const std::pair<std::__cxx11::basic_string<char>, bool>*, std::vector<std::pair<std::__cxx11::basic_string<char>, bool> > > > (predefined_ops.h:395) ==785== by 0x1B090B: __find_if<__gnu_cxx::__normal_iterator<const std::pair<std::__cxx11::basic_string<char>, bool>*, std::vector<std::pair<std::__cxx11::basic_string<char>, bool> > >, __gnu_cxx::__ops::_Iter_negate<FTWScanner::RecursiveScan(const std::string&)::<lambda(auto:1&&)> > > (stl_algobase.h:2071) ==785== by 0x1B090B: __find_if_not<__gnu_cxx::__normal_iterator<const std::pair<std::__cxx11::basic_string<char>, bool>*, std::vector<std::pair<std::__cxx11::basic_string<char>, bool> > >, __gnu_cxx::__ops::_Iter_pred<FTWScanner::RecursiveScan(const std::string&)::<lambda(auto:1&&)> > > (stl_algo.h:109) ==785== by 0x1B090B: find_if_not<__gnu_cxx::__normal_iterator<const std::pair<std::__cxx11::basic_string<char>, bool>*, std::vector<std::pair<std::__cxx11::basic_string<char>, bool> > >, FTWScanner::RecursiveScan(const std::string&)::<lambda(auto:1&&)> > (stl_algo.h:516) ==785== by 0x1B090B: all_of<__gnu_cxx::__normal_iterator<const std::pair<std::__cxx11::basic_string<char>, bool>*, std::vector<std::pair<std::__cxx11::basic_string<char>, bool> > >, FTWScanner::RecursiveScan(const std::string&)::<lambda(auto:1&&)> > (stl_algo.h:456) ==785== by 0x1B090B: FTWScanner::RecursiveScan(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (writer.cc:217) ==785== by 0x198B73: PackageMap::GenPackages(Configuration&, CacheDB::Stats&) (apt-ftparchive.cc:229) ==785== which is 983 if (LF_ISSET(STK_PGONLY)) 984 continue; 985 if (LF_ISSET(STK_NOLOCK) && 986 (epg->lock.mode == DB_LOCK_READ || 987 atomic_read(&mpf->mfp->multiversion) == 0)) { 988 if ((t_ret = __LPUT(dbc, epg->lock)) != 0 && ret == 0) 989 ret = t_ret; And adding 985 if (LF_ISSET(STK_NOLOCK)) { 986 printf("epg->lock.mode=%d\n", epg->lock.mode); 987 printf("atomic_read(&mpf->mfp->multiversion)=%d\n", atomic_read(&mpf->mfp->multiversion)); 988 } 989 if (LF_ISSET(STK_NOLOCK) && 990 (epg->lock.mode == DB_LOCK_READ || turns the error into ==47309== Conditional jump or move depends on uninitialised value(s) ==47309== at 0x539FC34: __vfprintf_internal (vfprintf-process-arg.c:58) ==47309== by 0x549A6FB: __printf_chk@@GLIBC_2.17 (printf_chk.c:33) ==47309== by 0x4A0A86F: printf (stdio2.h:86) ==47309== by 0x4A0A86F: __bam_stkrel (bt_search.c:986) ==47309== by 0x49F7A6B: __bamc_put (bt_cursor.c:2266) ==47309== by 0x4AD9453: __dbc_iput (db_cam.c:2136) ==47309== by 0x4ADBBE3: __dbc_put (db_cam.c:2049) ==47309== by 0x4AD2EBB: __db_put (db_am.c:583) ==47309== by 0x4AEE5DF: __db_put_pp (db_iface.c:1663) ==47309== by 0x1A1A1F: Put (cachedb.h:75) ==47309== by 0x1A1A1F: CacheDB::LoadControl() (cachedb.cc:360) ==47309== by 0x1A39E7: CacheDB::GetFileInfo(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, bool const&, bool const&, bool, unsigned int, bool const&) (cachedb.cc:290) ==47309== by 0x1B69D7: PackagesWriter::DoPackage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (writer.cc:409) ==47309== by 0x1B001F: FTWScanner::ProcessFile(char const*, bool) (writer.cc:156) ==47309== ==47309== Use of uninitialised value of size 8 ==47309== at 0x5393138: _itoa_word (_itoa.c:177) ==47309== by 0x539F6EF: __vfprintf_internal (vfprintf-process-arg.c:164) ==47309== by 0x4A0A86F: printf (stdio2.h:86) ==47309== by 0x4A0A86F: __bam_stkrel (bt_search.c:986) ==47309== by 0x49F7A6B: __bamc_put (bt_cursor.c:2266) ==47309== by 0x4AD9453: __dbc_iput (db_cam.c:2136) ==47309== by 0x4ADBBE3: __dbc_put (db_cam.c:2049) ==47309== by 0x4AD2EBB: __db_put (db_am.c:583) ==47309== by 0x4AEE5DF: __db_put_pp (db_iface.c:1663) ==47309== by 0x1A1A1F: Put (cachedb.h:75) ==47309== by 0x1A1A1F: CacheDB::LoadControl() (cachedb.cc:360) ==47309== by 0x1A39E7: CacheDB::GetFileInfo(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, bool const&, bool const&, bool, unsigned int, bool const&) (cachedb.cc:290) ==47309== by 0x1B69D7: PackagesWriter::DoPackage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (writer.cc:409) ==47309== by 0x1B001F: FTWScanner::ProcessFile(char const*, bool) (writer.cc:156) ==47309== ==47309== Conditional jump or move depends on uninitialised value(s) ==47309== at 0x5393140: _itoa_word (_itoa.c:177) ==47309== by 0x539F6EF: __vfprintf_internal (vfprintf-process-arg.c:164) ==47309== by 0x4A0A86F: printf (stdio2.h:86) ==47309== by 0x4A0A86F: __bam_stkrel (bt_search.c:986) ==47309== by 0x49F7A6B: __bamc_put (bt_cursor.c:2266) ==47309== by 0x4AD9453: __dbc_iput (db_cam.c:2136) ==47309== by 0x4ADBBE3: __dbc_put (db_cam.c:2049) ==47309== by 0x4AD2EBB: __db_put (db_am.c:583) ==47309== by 0x4AEE5DF: __db_put_pp (db_iface.c:1663) ==47309== by 0x1A1A1F: Put (cachedb.h:75) ==47309== by 0x1A1A1F: CacheDB::LoadControl() (cachedb.cc:360) ==47309== by 0x1A39E7: CacheDB::GetFileInfo(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool const&, bool const&, bool const&, bool, unsigned int, bool const&) (cachedb.cc:290) ==47309== by 0x1B69D7: PackagesWriter::DoPackage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (writer.cc:409) ==47309== by 0x1B001F: FTWScanner::ProcessFile(char const*, bool) (writer.cc:156) ==47309== Which points to epg->lock.mode. Happens in bookworm apt and Salsa apt bc1fbd12789bfebf225be7af5052840a6add21e2. I trust apt to drive bdb correctly. Never managed to use bdb, much less looked at the code, so idk what this means. But, here we are. Best,
signature.asc
Description: PGP signature

