{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":7340460,"defaultBranch":"master","name":"xbmc","ownerLogin":"neo1973","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2012-12-27T13:09:38.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3134317?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1723860968.0","currentOid":""},"activityList":{"items":[{"before":"b55a01965cf850cae4a11d93dc3acd3662749fe0","after":"9ce5e2cee59dca4bac122d0d9e515d9d5f29283e","ref":"refs/heads/StringUtils","pushedAt":"2024-08-22T00:12:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"SortUtils: Don't call `c_str()` before passing `std::string` to `StringUtils::AlphaNumericCompare`\n\nThis saves calling `strlen()` when constructing the `std::string_view`\nparameters.","shortMessageHtmlLink":"SortUtils: Don't call c_str() before passing std::string to `Stri…"}},{"before":"13f7766c92b2ae351b8a7bd6814bde4b29d0a928","after":"b55a01965cf850cae4a11d93dc3acd3662749fe0","ref":"refs/heads/StringUtils","pushedAt":"2024-08-21T01:28:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"SortUtils: Don't call `c_str()` before passing `std::string` to `StringUtils::AlphaNumericCompare`\n\nThis saves calling `strlen()` when constructing the `std::string_view`\nparameters.","shortMessageHtmlLink":"SortUtils: Don't call c_str() before passing std::string to `Stri…"}},{"before":"5e95352da9e52be66e281377a1f5372339a2de37","after":"13f7766c92b2ae351b8a7bd6814bde4b29d0a928","ref":"refs/heads/StringUtils","pushedAt":"2024-08-21T00:50:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"SortUtils: Don't call `c_str()` before passing `std::string` to `StringUtils::AlphaNumericCompare`\n\nThis saves calling `strlen()` when constructing the `std::string_view`\nparameters.","shortMessageHtmlLink":"SortUtils: Don't call c_str() before passing std::string to `Stri…"}},{"before":"c94b8cd90ab758d3f5c86b688c39b8b990d02db9","after":"5e95352da9e52be66e281377a1f5372339a2de37","ref":"refs/heads/StringUtils","pushedAt":"2024-08-20T23:28:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"SortUtils: Don't call `c_str()` before passing `std::string` to `StringUtils::AlphaNumericCompare`\n\nThis saves calling `strlen()` when constructing the `std::string_view`\nparameters.","shortMessageHtmlLink":"SortUtils: Don't call c_str() before passing std::string to `Stri…"}},{"before":null,"after":"b59719ec2bf934720406f5528ea1905646250bac","ref":"refs/heads/backport_25607","pushedAt":"2024-08-17T02:16:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"TestConversionMatrix: Add missing `` include\n\n(cherry picked from commit 127e70e5cfbc3e7cd696807c7e4b9ce10f0b9cd7)","shortMessageHtmlLink":"TestConversionMatrix: Add missing <iomanip> include"}},{"before":null,"after":"127e70e5cfbc3e7cd696807c7e4b9ce10f0b9cd7","ref":"refs/heads/fix_TestConversionMatrix","pushedAt":"2024-08-13T22:28:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"TestConversionMatrix: Add missing `` include","shortMessageHtmlLink":"TestConversionMatrix: Add missing <iomanip> include"}},{"before":null,"after":"98a397c3794f842555b50ebe4c0b4eca3530500f","ref":"refs/heads/backport_25556","pushedAt":"2024-08-04T14:11:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"KeyboardTranslator: Fix call to `StringUtils::ToLower`\n\n567960ee8e2e changed `strMod` from `std::string` to `const char*` resulting in\nthe call to `StringUtils::ToLower` to not modify `strMod` inplace anymore.\n\n(cherry picked from commit 1a1503cc838b40c651f008eedf43cdc2f55be35a)","shortMessageHtmlLink":"KeyboardTranslator: Fix call to StringUtils::ToLower"}},{"before":"a0c2ecba3a59d6d0497c9d4ca513a41f802811ac","after":"c94b8cd90ab758d3f5c86b688c39b8b990d02db9","ref":"refs/heads/StringUtils","pushedAt":"2024-08-03T23:33:03.000Z","pushType":"push","commitsCount":35,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"StringUtils: Add `std::string_view` overload to `sortstringbyname`","shortMessageHtmlLink":"StringUtils: Add std::string_view overload to sortstringbyname"}},{"before":"b4bb05466eebc348e16d64470ccb5199cc434d19","after":"a0c2ecba3a59d6d0497c9d4ca513a41f802811ac","ref":"refs/heads/StringUtils","pushedAt":"2024-07-29T01:02:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"fixup! StringUtils: Modernize Starts/EndsWith* functions","shortMessageHtmlLink":"fixup! StringUtils: Modernize Starts/EndsWith* functions"}},{"before":"0c2cb9ffb6d4213c87d1774a0ea0e8d36b4cfb87","after":"b4bb05466eebc348e16d64470ccb5199cc434d19","ref":"refs/heads/StringUtils","pushedAt":"2024-07-29T00:58:21.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"StringUtils: Modernize split functions\n\n- Add `[[nodiscard]]`\n- Use `std::string_view` where appropriate\n- Use `std::span`","shortMessageHtmlLink":"StringUtils: Modernize split functions"}},{"before":"20346a232c6b1612ea1c8a6c3e2e1da162d566cc","after":"1a1503cc838b40c651f008eedf43cdc2f55be35a","ref":"refs/heads/KeyboardTranslator","pushedAt":"2024-07-28T23:03:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"KeyboardTranslator: Fix call to `StringUtils::ToLower`\n\n567960ee8e2e changed `strMod` from `std::string` to `const char*` resulting in\nthe call to `StringUtils::ToLower` to not modify `strMod` inplace anymore.","shortMessageHtmlLink":"KeyboardTranslator: Fix call to StringUtils::ToLower"}},{"before":null,"after":"20346a232c6b1612ea1c8a6c3e2e1da162d566cc","ref":"refs/heads/KeyboardTranslator","pushedAt":"2024-07-28T23:01:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"KeyboardTranslator: Fix call to `StringUtils::ToLower`\n\n567960ee8e2e changed strMod from `std::string` to `const char*` resulting in\nthe call to `StringUtils::ToLower` to not modify `strMod` inplace anymore.","shortMessageHtmlLink":"KeyboardTranslator: Fix call to StringUtils::ToLower"}},{"before":null,"after":"0c2cb9ffb6d4213c87d1774a0ea0e8d36b4cfb87","ref":"refs/heads/StringUtils","pushedAt":"2024-07-28T22:48:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"StringUtils: Modernize Starts/EndsWith* functions\n\n- Add `[[nodiscard]]`\n- Add `noexcept`\n- Use `std::string_view`\n- Remove now unneeded overloads","shortMessageHtmlLink":"StringUtils: Modernize Starts/EndsWith* functions"}},{"before":"99eeebfa0078506cc80d2d3bd7769c431b442e95","after":"0b062766319ea1689c4d9bdf66dca846597df380","ref":"refs/heads/25277_suggestion","pushedAt":"2024-07-27T19:06:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"suggestion","shortMessageHtmlLink":"suggestion"}},{"before":null,"after":"99eeebfa0078506cc80d2d3bd7769c431b442e95","ref":"refs/heads/25277_suggestion","pushedAt":"2024-07-27T19:05:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"suggestion","shortMessageHtmlLink":"suggestion"}},{"before":"f25fc1dafe47efeba287ddeefd096db51e5547ca","after":null,"ref":"refs/heads/25277_suggestion","pushedAt":"2024-07-27T18:58:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"}},{"before":null,"after":"f25fc1dafe47efeba287ddeefd096db51e5547ca","ref":"refs/heads/25277_suggestion","pushedAt":"2024-07-27T18:55:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"suggestion","shortMessageHtmlLink":"suggestion"}},{"before":"823cc47a999869183d0e134c90afb0f3baa6b9e4","after":"dc13ac4fe229448ad9bacb296f4f956bc57a006d","ref":"refs/heads/fix_clang_warning","pushedAt":"2024-07-21T23:25:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"SMBWSDiscoveryListener: Fix clang warning\n\nSMBWSDiscoveryListener.cpp:275:19: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]\n 275 | char msgbuf[UDPBUFFSIZE];\n | ^~~~~~~~~~~\nSMBWSDiscoveryListener.cpp:275:19: note: implicit use of 'this' pointer is only allowed within the evaluation of a call to a 'constexpr' member function\n\nAlso makes the instantiated class a little smaller.","shortMessageHtmlLink":"SMBWSDiscoveryListener: Fix clang warning"}},{"before":null,"after":"823cc47a999869183d0e134c90afb0f3baa6b9e4","ref":"refs/heads/fix_clang_warning","pushedAt":"2024-07-21T23:15:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"SMBWSDiscoveryListener: Fix clang warning\n\nSMBWSDiscoveryListener.cpp:275:19: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]\n 275 | char msgbuf[UDPBUFFSIZE];\n | ^~~~~~~~~~~\nSMBWSDiscoveryListener.cpp:275:19: note: implicit use of 'this' pointer is only allowed within the evaluation of a call to a 'constexpr' member function\n\nAlso makes the instantiated class a little smaller.","shortMessageHtmlLink":"SMBWSDiscoveryListener: Fix clang warning"}},{"before":"3ffe5e79ccdb1bc003a15e0e7a97636bec038a4d","after":"6137da592ce203e736249d40174cbc3b7aa183c3","ref":"refs/heads/map_improvements","pushedAt":"2024-07-09T23:54:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"Map: Make CMap constructor consteval","shortMessageHtmlLink":"Map: Make CMap constructor consteval"}},{"before":null,"after":"3ffe5e79ccdb1bc003a15e0e7a97636bec038a4d","ref":"refs/heads/map_improvements","pushedAt":"2024-07-07T21:33:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"Map: Make CMap constructor consteval","shortMessageHtmlLink":"Map: Make CMap constructor consteval"}},{"before":null,"after":"317a652f2af3d6710a06b3791739002b05672b82","ref":"refs/heads/fix_mutexattr_init","pushedAt":"2024-07-06T18:07:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"RecursiveMutex: Prevent initialization-order-fiasco of mutex attribute\n\nASAN error:\n\n==226990==ERROR: AddressSanitizer: initialization-order-fiasco on address 0x5a8f25b81ce0 at pc 0x5a8f17dd10ae bp 0x7ffe5391ce50 sp 0x7ffe5391ce48\nREAD of size 1 at 0x5a8f25b81ce0 thread T0\n #0 0x5a8f17dd10ad in XbmcThreads::CRecursiveMutex::getRecursiveAttr() xbmc/platform/posix/threads/RecursiveMutex.cpp:37:8\n #1 0x5a8f17817a4e in XbmcThreads::CRecursiveMutex::CRecursiveMutex() xbmc/platform/posix/threads/RecursiveMutex.h:35:60\n #2 0x5a8f17817998 in XbmcThreads::CountingLockable::CountingLockable() xbmc/threads/Lockables.h:47:12\n #3 0x5a8f1780dae8 in CCriticalSection::CCriticalSection() xbmc/threads/CriticalSection.h:16:7\n #4 0x5a8f1b27fd98 in CComponentContainer::CComponentContainer() xbmc/utils/ComponentContainer.h:26:7\n #5 0x5a8f1b1f3273 in CApplication::CApplication() xbmc/application/Application.cpp:217:15\n #6 0x5a8f17918fe0 in xbmcutil::GlobalsSingleton::getInstance() xbmc/utils/GlobalsHandling.h:147:23\n #7 0x5a8f17918f0f in __cxx_global_var_init.1 xbmc/application/Application.h:250:1\n #8 0x5a8f17918f49 in _GLOBAL__sub_I_UPnPRenderer.cpp xbmc/network/upnp/UPnPRenderer.cpp\n #9 0x7c5016639dc3 in __libc_start_main (/usr/lib/libc.so.6+0x25dc3) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #10 0x5a8f17636814 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9fa3814) (BuildId: 6cfd7dacce8a4a587ad47d2f082a4e50dad4c176)\n\n0x5a8f25b81ce0 is located 32 bytes before global variable 'XbmcThreads::recursiveAttr' defined in 'xbmc/platform/posix/threads/RecursiveMutex.cpp' (0x5a8f25b81d00) of size 4\n registered at:\n #0 0x5a8f17651629 in __asan_register_globals.part.0 (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9fbe629) (BuildId: 6cfd7dacce8a4a587ad47d2f082a4e50dad4c176)\n #1 0x5a8f17651cce in __asan_register_elf_globals (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9fbecce) (BuildId: 6cfd7dacce8a4a587ad47d2f082a4e50dad4c176)\n #2 0x7c5016639dc3 in __libc_start_main (/usr/lib/libc.so.6+0x25dc3) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #3 0x5a8f17636814 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9fa3814) (BuildId: 6cfd7dacce8a4a587ad47d2f082a4e50dad4c176)\n\n0x5a8f25b81ce0 is located 0 bytes inside of global variable 'XbmcThreads::recursiveAttrSet' defined in 'xbmc/platform/posix/threads/RecursiveMutex.cpp' (0x5a8f25b81ce0) of size 1\n 'XbmcThreads::recursiveAttrSet' is ascii string ''\n registered at:\n #0 0x5a8f17651629 in __asan_register_globals.part.0 (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9fbe629) (BuildId: 6cfd7dacce8a4a587ad47d2f082a4e50dad4c176)\n #1 0x5a8f17651cce in __asan_register_elf_globals (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9fbecce) (BuildId: 6cfd7dacce8a4a587ad47d2f082a4e50dad4c176)\n #2 0x7c5016639dc3 in __libc_start_main (/usr/lib/libc.so.6+0x25dc3) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #3 0x5a8f17636814 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9fa3814) (BuildId: 6cfd7dacce8a4a587ad47d2f082a4e50dad4c176)\n\nSUMMARY: AddressSanitizer: initialization-order-fiasco xbmc/platform/posix/threads/RecursiveMutex.cpp:37:8 in XbmcThreads::CRecursiveMutex::getRecursiveAttr()\nShadow bytes around the buggy address:\n 0x5a8f25b81a00: f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 00 00 00 00\n 0x5a8f25b81a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n 0x5a8f25b81b00: 00 00 f9 f9 f9 f9 f9 f9 00 f9 f9 f9 00 00 00 00\n 0x5a8f25b81b80: f6 f6 f6 f6 00 00 00 00 f6 f6 f6 f6 f6 f6 f6 f6\n 0x5a8f25b81c00: f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6\n=>0x5a8f25b81c80: 00 00 00 00 f6 f6 f6 f6 00 00 00 00[f6]f6 f6 f6\n 0x5a8f25b81d00: 04 f9 f9 f9 01 f9 f9 f9 00 00 00 00 f6 f6 f6 f6\n 0x5a8f25b81d80: 00 00 00 00 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6 f6\n 0x5a8f25b81e00: 00 00 00 00 f6 f6 f6 f6 00 00 00 00 f9 f9 f9 f9\n 0x5a8f25b81e80: 00 f9 f9 f9 00 f9 f9 f9 f6 f6 f6 f6 f6 f6 f6 f6\n 0x5a8f25b81f00: f6 f6 f6 f6 00 00 00 00 00 00 00 00 00 00 00 00\nShadow byte legend (one shadow byte represents 8 application bytes):\n Addressable: 00\n Partially addressable: 01 02 03 04 05 06 07\n Heap left redzone: fa\n Freed heap region: fd\n Stack left redzone: f1\n Stack mid redzone: f2\n Stack right redzone: f3\n Stack after return: f5\n Stack use after scope: f8\n Global redzone: f9\n Global init order: f6\n Poisoned by user: f7\n Container overflow: fc\n Array cookie: ac\n Intra object redzone: bb\n ASan internal: fe\n Left alloca redzone: ca\n Right alloca redzone: cb","shortMessageHtmlLink":"RecursiveMutex: Prevent initialization-order-fiasco of mutex attribute"}},{"before":null,"after":"2ef9028efc04d9e7b0f70e37fe55920db9f79f53","ref":"refs/heads/fix_25396","pushedAt":"2024-06-29T15:12:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"Mime: Fix initialization order problem.\n\nFixes #25396.","shortMessageHtmlLink":"Mime: Fix initialization order problem."}},{"before":"d55e4620ffacb592a2179415e1a022f0df2facd9","after":"6efd635acb9e8ce9252459cc30f8b994c3c09e9f","ref":"refs/heads/fix_RegExp","pushedAt":"2024-06-28T23:17:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"RegExp: Fix heap-use-after-free\n\n`m_iOvector` is a pointer array into the match data, so the match data must be\nkept as long as `m_iOvector` is used.\n\nAddress Sanitizer output:\n\n==28015==ERROR: AddressSanitizer: heap-use-after-free on address 0x5190000406e8 at pc 0x59cf02e5ad9e bp 0x7ffdcd8a1a10 sp 0x7ffdcd8a1a08\nREAD of size 8 at 0x5190000406e8 thread T0\n #0 0x59cf02e5ad9d in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:425:10\n #1 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #2 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #3 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #4 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #5 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #6 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #7 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #8 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #9 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #10 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #11 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #12 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #13 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #14 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #15 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #16 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #17 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #18 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #19 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #20 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\n0x5190000406e8 is located 104 bytes inside of 1112-byte region [0x519000040680,0x519000040ad8)\nfreed by thread T0 here:\n #0 0x59cf007069b2 in free.part.0 (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0xa07f9b2) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n #1 0x59cf02e59ed8 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:352:3\n #2 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #3 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #4 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #5 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #6 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #7 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #8 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #9 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #10 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #11 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #12 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #13 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #14 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #15 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #16 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #17 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #18 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #19 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #20 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #21 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\npreviously allocated by thread T0 here:\n #0 0x59cf007079e9 in malloc (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0xa0809e9) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n #1 0x74a07fb7faed (/usr/lib/libpcre2-8.so.0+0x12aed) (BuildId: d6a22ace8f92ae592b620499fc467ef7899f99a0)\n #2 0x74a07fbbf29f in pcre2_match_data_create_8 (/usr/lib/libpcre2-8.so.0+0x5229f) (BuildId: d6a22ace8f92ae592b620499fc467ef7899f99a0)\n #3 0x59cf02e59c65 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:347:8\n #4 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #5 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #6 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #7 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #8 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #9 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #10 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #11 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #12 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #13 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #14 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #15 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #16 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #17 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #18 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #19 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #20 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #21 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #22 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #23 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\nSUMMARY: AddressSanitizer: heap-use-after-free xbmc/utils/RegExp.cpp:425:10 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int)\nShadow bytes around the buggy address:\n 0x519000040400: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040480: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040500: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040580: fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa fa\n 0x519000040600: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n=>0x519000040680: fd fd fd fd fd fd fd fd fd fd fd fd fd[fd]fd fd\n 0x519000040700: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040780: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040800: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040880: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040900: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\nShadow byte legend (one shadow byte represents 8 application bytes):\n Addressable: 00\n Partially addressable: 01 02 03 04 05 06 07\n Heap left redzone: fa\n Freed heap region: fd\n Stack left redzone: f1\n Stack mid redzone: f2\n Stack right redzone: f3\n Stack after return: f5\n Stack use after scope: f8\n Global redzone: f9\n Global init order: f6\n Poisoned by user: f7\n Container overflow: fc\n Array cookie: ac\n Intra object redzone: bb\n ASan internal: fe\n Left alloca redzone: ca\n Right alloca redzone: cb\n==28015==ABORTING","shortMessageHtmlLink":"RegExp: Fix heap-use-after-free"}},{"before":"cef0151fd3d78f0c8453cf6c9fdf365c04a81fe2","after":"d55e4620ffacb592a2179415e1a022f0df2facd9","ref":"refs/heads/fix_RegExp","pushedAt":"2024-06-27T22:57:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"RegExp: Fix heap-use-after-free\n\n`m_iOvector` is a pointer array into the match data, so the match data must be\nkept as long as `m_iOvector` is used.\n\nAddress Sanitizer output:\n\n==28015==ERROR: AddressSanitizer: heap-use-after-free on address 0x5190000406e8 at pc 0x59cf02e5ad9e bp 0x7ffdcd8a1a10 sp 0x7ffdcd8a1a08\nREAD of size 8 at 0x5190000406e8 thread T0\n #0 0x59cf02e5ad9d in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:425:10\n #1 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #2 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #3 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #4 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #5 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #6 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #7 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #8 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #9 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #10 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #11 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #12 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #13 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #14 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #15 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #16 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #17 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #18 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #19 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #20 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\n0x5190000406e8 is located 104 bytes inside of 1112-byte region [0x519000040680,0x519000040ad8)\nfreed by thread T0 here:\n #0 0x59cf007069b2 in free.part.0 (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0xa07f9b2) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n #1 0x59cf02e59ed8 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:352:3\n #2 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #3 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #4 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #5 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #6 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #7 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #8 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #9 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #10 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #11 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #12 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #13 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #14 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #15 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #16 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #17 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #18 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #19 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #20 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #21 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\npreviously allocated by thread T0 here:\n #0 0x59cf007079e9 in malloc (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0xa0809e9) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n #1 0x74a07fb7faed (/usr/lib/libpcre2-8.so.0+0x12aed) (BuildId: d6a22ace8f92ae592b620499fc467ef7899f99a0)\n #2 0x74a07fbbf29f in pcre2_match_data_create_8 (/usr/lib/libpcre2-8.so.0+0x5229f) (BuildId: d6a22ace8f92ae592b620499fc467ef7899f99a0)\n #3 0x59cf02e59c65 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:347:8\n #4 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #5 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #6 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #7 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #8 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #9 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #10 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #11 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #12 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #13 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #14 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #15 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #16 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #17 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #18 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #19 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #20 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #21 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #22 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #23 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\nSUMMARY: AddressSanitizer: heap-use-after-free xbmc/utils/RegExp.cpp:425:10 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int)\nShadow bytes around the buggy address:\n 0x519000040400: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040480: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040500: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040580: fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa fa\n 0x519000040600: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n=>0x519000040680: fd fd fd fd fd fd fd fd fd fd fd fd fd[fd]fd fd\n 0x519000040700: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040780: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040800: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040880: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040900: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\nShadow byte legend (one shadow byte represents 8 application bytes):\n Addressable: 00\n Partially addressable: 01 02 03 04 05 06 07\n Heap left redzone: fa\n Freed heap region: fd\n Stack left redzone: f1\n Stack mid redzone: f2\n Stack right redzone: f3\n Stack after return: f5\n Stack use after scope: f8\n Global redzone: f9\n Global init order: f6\n Poisoned by user: f7\n Container overflow: fc\n Array cookie: ac\n Intra object redzone: bb\n ASan internal: fe\n Left alloca redzone: ca\n Right alloca redzone: cb\n==28015==ABORTING","shortMessageHtmlLink":"RegExp: Fix heap-use-after-free"}},{"before":"8630a6aa6d8d20423270f45c57711201a158cc3a","after":"cef0151fd3d78f0c8453cf6c9fdf365c04a81fe2","ref":"refs/heads/fix_RegExp","pushedAt":"2024-06-27T22:56:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"RegExp: Fix heap-use-after-free\n\n`m_iOvector` is a pointer array into the match data, so the match data must be\nkept as long as `m_iOvector` is used.\n\nAddress Sanitizer output:\n\n==28015==ERROR: AddressSanitizer: heap-use-after-free on address 0x5190000406e8 at pc 0x59cf02e5ad9e bp 0x7ffdcd8a1a10 sp 0x7ffdcd8a1a08\nREAD of size 8 at 0x5190000406e8 thread T0\n #0 0x59cf02e5ad9d in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:425:10\n #1 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #2 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #3 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #4 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #5 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #6 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #7 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #8 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #9 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #10 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #11 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #12 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #13 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #14 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #15 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #16 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #17 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #18 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #19 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #20 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\n0x5190000406e8 is located 104 bytes inside of 1112-byte region [0x519000040680,0x519000040ad8)\nfreed by thread T0 here:\n #0 0x59cf007069b2 in free.part.0 (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0xa07f9b2) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n #1 0x59cf02e59ed8 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:352:3\n #2 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #3 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #4 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #5 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #6 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #7 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #8 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #9 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #10 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #11 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #12 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #13 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #14 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #15 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #16 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #17 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #18 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #19 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #20 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #21 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\npreviously allocated by thread T0 here:\n #0 0x59cf007079e9 in malloc (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0xa0809e9) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n #1 0x74a07fb7faed (/usr/lib/libpcre2-8.so.0+0x12aed) (BuildId: d6a22ace8f92ae592b620499fc467ef7899f99a0)\n #2 0x74a07fbbf29f in pcre2_match_data_create_8 (/usr/lib/libpcre2-8.so.0+0x5229f) (BuildId: d6a22ace8f92ae592b620499fc467ef7899f99a0)\n #3 0x59cf02e59c65 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:347:8\n #4 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #5 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #6 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #7 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #8 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #9 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #10 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #11 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #12 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #13 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #14 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #15 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #16 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #17 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #18 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #19 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #20 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #21 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #22 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #23 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\nSUMMARY: AddressSanitizer: heap-use-after-free xbmc/utils/RegExp.cpp:425:10 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int)\nShadow bytes around the buggy address:\n 0x519000040400: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040480: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040500: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040580: fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa fa\n 0x519000040600: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n=>0x519000040680: fd fd fd fd fd fd fd fd fd fd fd fd fd[fd]fd fd\n 0x519000040700: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040780: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040800: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040880: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040900: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\nShadow byte legend (one shadow byte represents 8 application bytes):\n Addressable: 00\n Partially addressable: 01 02 03 04 05 06 07\n Heap left redzone: fa\n Freed heap region: fd\n Stack left redzone: f1\n Stack mid redzone: f2\n Stack right redzone: f3\n Stack after return: f5\n Stack use after scope: f8\n Global redzone: f9\n Global init order: f6\n Poisoned by user: f7\n Container overflow: fc\n Array cookie: ac\n Intra object redzone: bb\n ASan internal: fe\n Left alloca redzone: ca\n Right alloca redzone: cb\n==28015==ABORTING","shortMessageHtmlLink":"RegExp: Fix heap-use-after-free"}},{"before":"7c9205aba31996ba1deda7fa502d4f7ca65cb39b","after":"8630a6aa6d8d20423270f45c57711201a158cc3a","ref":"refs/heads/fix_RegExp","pushedAt":"2024-06-27T22:45:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"RegExp: Fix heap-use-after-free\n\n`m_iOvector` is a pointer array into the match data, so the match data has be\nkept as long as `m_iOvector` is used.\n\nAddress Sanitizer output:\n\n==28015==ERROR: AddressSanitizer: heap-use-after-free on address 0x5190000406e8 at pc 0x59cf02e5ad9e bp 0x7ffdcd8a1a10 sp 0x7ffdcd8a1a08\nREAD of size 8 at 0x5190000406e8 thread T0\n #0 0x59cf02e5ad9d in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:425:10\n #1 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #2 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #3 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #4 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #5 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #6 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #7 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #8 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #9 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #10 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #11 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #12 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #13 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #14 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #15 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #16 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #17 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #18 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #19 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #20 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\n0x5190000406e8 is located 104 bytes inside of 1112-byte region [0x519000040680,0x519000040ad8)\nfreed by thread T0 here:\n #0 0x59cf007069b2 in free.part.0 (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0xa07f9b2) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n #1 0x59cf02e59ed8 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:352:3\n #2 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #3 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #4 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #5 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #6 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #7 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #8 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #9 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #10 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #11 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #12 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #13 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #14 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #15 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #16 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #17 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #18 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #19 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #20 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #21 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\npreviously allocated by thread T0 here:\n #0 0x59cf007079e9 in malloc (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0xa0809e9) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n #1 0x74a07fb7faed (/usr/lib/libpcre2-8.so.0+0x12aed) (BuildId: d6a22ace8f92ae592b620499fc467ef7899f99a0)\n #2 0x74a07fbbf29f in pcre2_match_data_create_8 (/usr/lib/libpcre2-8.so.0+0x5229f) (BuildId: d6a22ace8f92ae592b620499fc467ef7899f99a0)\n #3 0x59cf02e59c65 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:347:8\n #4 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #5 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #6 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #7 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #8 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #9 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #10 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #11 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #12 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #13 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #14 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #15 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #16 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #17 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #18 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #19 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #20 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #21 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #22 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #23 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\nSUMMARY: AddressSanitizer: heap-use-after-free xbmc/utils/RegExp.cpp:425:10 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int)\nShadow bytes around the buggy address:\n 0x519000040400: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040480: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040500: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040580: fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa fa\n 0x519000040600: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n=>0x519000040680: fd fd fd fd fd fd fd fd fd fd fd fd fd[fd]fd fd\n 0x519000040700: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040780: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040800: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040880: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040900: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\nShadow byte legend (one shadow byte represents 8 application bytes):\n Addressable: 00\n Partially addressable: 01 02 03 04 05 06 07\n Heap left redzone: fa\n Freed heap region: fd\n Stack left redzone: f1\n Stack mid redzone: f2\n Stack right redzone: f3\n Stack after return: f5\n Stack use after scope: f8\n Global redzone: f9\n Global init order: f6\n Poisoned by user: f7\n Container overflow: fc\n Array cookie: ac\n Intra object redzone: bb\n ASan internal: fe\n Left alloca redzone: ca\n Right alloca redzone: cb\n==28015==ABORTING","shortMessageHtmlLink":"RegExp: Fix heap-use-after-free"}},{"before":null,"after":"7c9205aba31996ba1deda7fa502d4f7ca65cb39b","ref":"refs/heads/fix_RegExp","pushedAt":"2024-06-27T22:39:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"RegExp: Fix heap-use-after-free\n\n`m_iOvector` is a pointer array into the match data, so the match data has be\nkept as long as `m_iOvector` is used.\n\nAddress Sanitizer output:\n\n==28015==ERROR: AddressSanitizer: heap-use-after-free on address 0x5190000406e8 at pc 0x59cf02e5ad9e bp 0x7ffdcd8a1a10 sp 0x7ffdcd8a1a08\nREAD of size 8 at 0x5190000406e8 thread T0\n #0 0x59cf02e5ad9d in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:425:10\n #1 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #2 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #3 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #4 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #5 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #6 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #7 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #8 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #9 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #10 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #11 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #12 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #13 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #14 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #15 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #16 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #17 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #18 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #19 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #20 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\n0x5190000406e8 is located 104 bytes inside of 1112-byte region [0x519000040680,0x519000040ad8)\nfreed by thread T0 here:\n #0 0x59cf007069b2 in free.part.0 (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0xa07f9b2) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n #1 0x59cf02e59ed8 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:352:3\n #2 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #3 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #4 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #5 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #6 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #7 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #8 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #9 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #10 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #11 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #12 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #13 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #14 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #15 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #16 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #17 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #18 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #19 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #20 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #21 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\npreviously allocated by thread T0 here:\n #0 0x59cf007079e9 in malloc (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0xa0809e9) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n #1 0x74a07fb7faed (/usr/lib/libpcre2-8.so.0+0x12aed) (BuildId: d6a22ace8f92ae592b620499fc467ef7899f99a0)\n #2 0x74a07fbbf29f in pcre2_match_data_create_8 (/usr/lib/libpcre2-8.so.0+0x5229f) (BuildId: d6a22ace8f92ae592b620499fc467ef7899f99a0)\n #3 0x59cf02e59c65 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int) xbmc/utils/RegExp.cpp:347:8\n #4 0x59cf013cb942 in CRegExp::RegFind(std::__cxx11::basic_string, std::allocator> const&, unsigned int, int) xbmc/utils/RegExp.h:95:12\n #5 0x59cf0316a9ef in CXBMCTinyXML2::ParseHelper(unsigned long, std::__cxx11::basic_string, std::allocator>&&) xbmc/utils/XBMCTinyXML2.cpp:106:12\n #6 0x59cf0316965b in CXBMCTinyXML2::Parse(std::basic_string_view>) xbmc/utils/XBMCTinyXML2.cpp:82:10\n #7 0x59cf03168fac in CXBMCTinyXML2::LoadFile(std::__cxx11::basic_string, std::allocator> const&) xbmc/utils/XBMCTinyXML2.cpp:36:3\n #8 0x59cf0563fe1b in CMediaSourceSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/MediaSourceSettings.cpp:85:15\n #9 0x59cf0563f590 in CMediaSourceSettings::Load() xbmc/settings/MediaSourceSettings.cpp:71:10\n #10 0x59cf0563f3d0 in CMediaSourceSettings::OnSettingsLoaded() xbmc/settings/MediaSourceSettings.cpp:61:3\n #11 0x59cf053c86c4 in CSettingsManager::OnSettingsLoaded() xbmc/settings/lib/SettingsManager.cpp:1022:22\n #12 0x59cf053969dc in CSettingsManager::Load(TiXmlElement const*, bool&, bool, std::map, std::allocator>, std::shared_ptr, std::less, std::allocator>>, std::allocator, std::allocator> const, std::shared_ptr>>>*) xbmc/settings/lib/SettingsManager.cpp:173:5\n #13 0x59cf056ed775 in CSettingsBase::LoadValuesFromXml(TiXmlElement const*, bool&) xbmc/settings/SettingsBase.cpp:86:29\n #14 0x59cf056b96b0 in CSettings::Load(TiXmlElement const*, bool&) xbmc/settings/Settings.cpp:217:23\n #15 0x59cf056b8f00 in CSettings::Load(std::__cxx11::basic_string, std::allocator> const&) xbmc/settings/Settings.cpp:125:8\n #16 0x59cf056b87e5 in CSettings::Load() xbmc/settings/Settings.cpp:117:10\n #17 0x59cf05715a60 in CSettingsComponent::Load() xbmc/settings/SettingsComponent.cpp:83:22\n #18 0x59cf041da912 in CApplication::Create() xbmc/application/Application.cpp:320:27\n #19 0x59cf033b4eed in XBMC_Run xbmc/platform/xbmc.cpp:26:22\n #20 0x59cf00752b7f in main xbmc/platform/posix/main.cpp:70:16\n #21 0x74a07d239c87 (/usr/lib/libc.so.6+0x25c87) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #22 0x74a07d239d4b in __libc_start_main (/usr/lib/libc.so.6+0x25d4b) (BuildId: 32a656aa5562eece8c59a585f5eacd6cf5e2307b)\n #23 0x59cf00618804 in _start (/home/mark/Coding/Repos/kodi-git/build_clang_debug_sanitizer/kodi.bin+0x9f91804) (BuildId: fa447ae84e6fbfe91e7ec718a600116496d7607e)\n\nSUMMARY: AddressSanitizer: heap-use-after-free xbmc/utils/RegExp.cpp:425:10 in CRegExp::PrivateRegFind(unsigned long, char const*, unsigned int, int)\nShadow bytes around the buggy address:\n 0x519000040400: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040480: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040500: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040580: fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa fa\n 0x519000040600: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n=>0x519000040680: fd fd fd fd fd fd fd fd fd fd fd fd fd[fd]fd fd\n 0x519000040700: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040780: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040800: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040880: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n 0x519000040900: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\nShadow byte legend (one shadow byte represents 8 application bytes):\n Addressable: 00\n Partially addressable: 01 02 03 04 05 06 07\n Heap left redzone: fa\n Freed heap region: fd\n Stack left redzone: f1\n Stack mid redzone: f2\n Stack right redzone: f3\n Stack after return: f5\n Stack use after scope: f8\n Global redzone: f9\n Global init order: f6\n Poisoned by user: f7\n Container overflow: fc\n Array cookie: ac\n Intra object redzone: bb\n ASan internal: fe\n Left alloca redzone: ca\n Right alloca redzone: cb\n==28015==ABORTING","shortMessageHtmlLink":"RegExp: Fix heap-use-after-free"}},{"before":"2d5c4432d0c05396310b09764c649663335644f0","after":"d7a5de5ab9c198a1b2ac7f4753142f6ed4020a78","ref":"refs/heads/fix_25288","pushedAt":"2024-05-31T23:53:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"CFile: Handle std::bad_alloc in LoadFile\n\nThis won't help on most Linux systems due to memory overcommitment. But could\nin theory help on Windows and also Androif if #25288 is to be trusted?\n\nFixes #25288.","shortMessageHtmlLink":"CFile: Handle std::bad_alloc in LoadFile"}},{"before":"ff6716072b6f059d7dc0674e9c1dad6d73d8c35d","after":"2d5c4432d0c05396310b09764c649663335644f0","ref":"refs/heads/fix_25288","pushedAt":"2024-05-31T23:41:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"neo1973","name":"Markus Härer","path":"/neo1973","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3134317?s=80&v=4"},"commit":{"message":"CFile: Handle std::bad_alloc in LoadFile\n\nThis won't help on most Linux systems due to memory overcommitment. But could\nin theory help on Windows and also Androif if #25288 is to be trusted?\n\nFixes #25288.","shortMessageHtmlLink":"CFile: Handle std::bad_alloc in LoadFile"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yMlQwMDoxMjo0MC4wMDAwMDBazwAAAASgvTId","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yMlQwMDoxMjo0MC4wMDAwMDBazwAAAASgvTId","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0zMVQyMzo0MToyMS4wMDAwMDBazwAAAARZd6hZ"}},"title":"Activity · neo1973/xbmc"}