pw_bluetooth_proxy: Fix msan issue in CanOccupyAllThenReuseEachBuffer

Use vector rather than array to properly track packets we are collecting
and then discarding.

Fixes msan issue https://paste.googleplex.com/4671049353134080 in
in MultiSendTest.CanOccupyAllThenReuseEachBuffer.

Bug: 402543431
Change-Id: I0b7b0b0dc663f55082f35045ca742297e7a9b94c
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/274995
Reviewed-by: Austin Foxley <afoxley@google.com>
Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>
Commit-Queue: David Rees <drees@google.com>
Pigweed-Auto-Submit: David Rees <drees@google.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
Docs-Not-Needed: David Rees <drees@google.com>
1 file changed
tree: 169747749272c1a73ce9793a9483e2e9b1ca64b3
  1. .allstar/
  2. .github/
  3. .vscode/
  4. build_overrides/
  5. docker/
  6. docs/
  7. kudzu/
  8. pw_alignment/
  9. pw_allocator/
  10. pw_analog/
  11. pw_android_toolchain/
  12. pw_arduino_build/
  13. pw_assert/
  14. pw_assert_basic/
  15. pw_assert_fuchsia/
  16. pw_assert_log/
  17. pw_assert_tokenized/
  18. pw_assert_trap/
  19. pw_assert_zephyr/
  20. pw_async/
  21. pw_async2/
  22. pw_async2_basic/
  23. pw_async2_epoll/
  24. pw_async_basic/
  25. pw_async_fuchsia/
  26. pw_atomic/
  27. pw_base64/
  28. pw_bloat/
  29. pw_blob_store/
  30. pw_bluetooth/
  31. pw_bluetooth_hci/
  32. pw_bluetooth_profiles/
  33. pw_bluetooth_proxy/
  34. pw_bluetooth_sapphire/
  35. pw_boot/
  36. pw_boot_cortex_m/
  37. pw_build/
  38. pw_build_android/
  39. pw_build_info/
  40. pw_build_mcuxpresso/
  41. pw_bytes/
  42. pw_channel/
  43. pw_checksum/
  44. pw_chre/
  45. pw_chrono/
  46. pw_chrono_embos/
  47. pw_chrono_freertos/
  48. pw_chrono_rp2040/
  49. pw_chrono_stl/
  50. pw_chrono_threadx/
  51. pw_chrono_zephyr/
  52. pw_cli/
  53. pw_cli_analytics/
  54. pw_clock_tree/
  55. pw_clock_tree_mcuxpresso/
  56. pw_compilation_testing/
  57. pw_config_loader/
  58. pw_console/
  59. pw_containers/
  60. pw_cpu_exception/
  61. pw_cpu_exception_cortex_m/
  62. pw_cpu_exception_risc_v/
  63. pw_crypto/
  64. pw_digital_io/
  65. pw_digital_io_linux/
  66. pw_digital_io_mcuxpresso/
  67. pw_digital_io_rp2040/
  68. pw_display/
  69. pw_dma_mcuxpresso/
  70. pw_docgen/
  71. pw_doctor/
  72. pw_elf/
  73. pw_emu/
  74. pw_env_setup/
  75. pw_env_setup_zephyr/
  76. pw_file/
  77. pw_flatbuffers/
  78. pw_format/
  79. pw_function/
  80. pw_fuzzer/
  81. pw_grpc/
  82. pw_hdlc/
  83. pw_hex_dump/
  84. pw_i2c/
  85. pw_i2c_linux/
  86. pw_i2c_mcuxpresso/
  87. pw_i2c_rp2040/
  88. pw_ide/
  89. pw_interrupt/
  90. pw_interrupt_cortex_m/
  91. pw_interrupt_freertos/
  92. pw_interrupt_xtensa/
  93. pw_interrupt_zephyr/
  94. pw_intrusive_ptr/
  95. pw_json/
  96. pw_kernel/
  97. pw_kvs/
  98. pw_libc/
  99. pw_libcxx/
  100. pw_log/
  101. pw_log_android/
  102. pw_log_basic/
  103. pw_log_fuchsia/
  104. pw_log_null/
  105. pw_log_rpc/
  106. pw_log_string/
  107. pw_log_tokenized/
  108. pw_log_zephyr/
  109. pw_malloc/
  110. pw_malloc_freelist/
  111. pw_malloc_freertos/
  112. pw_metric/
  113. pw_minimal_cpp_stdlib/
  114. pw_module/
  115. pw_multibuf/
  116. pw_multisink/
  117. pw_numeric/
  118. pw_package/
  119. pw_perf_test/
  120. pw_persistent_ram/
  121. pw_polyfill/
  122. pw_preprocessor/
  123. pw_presubmit/
  124. pw_protobuf/
  125. pw_protobuf_compiler/
  126. pw_random/
  127. pw_random_fuchsia/
  128. pw_result/
  129. pw_ring_buffer/
  130. pw_router/
  131. pw_rpc/
  132. pw_rpc_transport/
  133. pw_rust/
  134. pw_sensor/
  135. pw_snapshot/
  136. pw_software_update/
  137. pw_span/
  138. pw_spi/
  139. pw_spi_linux/
  140. pw_spi_mcuxpresso/
  141. pw_spi_rp2040/
  142. pw_status/
  143. pw_stm32cube_build/
  144. pw_stream/
  145. pw_stream_shmem_mcuxpresso/
  146. pw_stream_uart_linux/
  147. pw_stream_uart_mcuxpresso/
  148. pw_string/
  149. pw_symbolizer/
  150. pw_sync/
  151. pw_sync_baremetal/
  152. pw_sync_embos/
  153. pw_sync_freertos/
  154. pw_sync_stl/
  155. pw_sync_threadx/
  156. pw_sync_zephyr/
  157. pw_sys_io/
  158. pw_sys_io_ambiq_sdk/
  159. pw_sys_io_arduino/
  160. pw_sys_io_baremetal_lm3s6965evb/
  161. pw_sys_io_baremetal_stm32f429/
  162. pw_sys_io_emcraft_sf2/
  163. pw_sys_io_mcuxpresso/
  164. pw_sys_io_rp2040/
  165. pw_sys_io_stdio/
  166. pw_sys_io_stm32cube/
  167. pw_sys_io_zephyr/
  168. pw_system/
  169. pw_target_runner/
  170. pw_thread/
  171. pw_thread_embos/
  172. pw_thread_freertos/
  173. pw_thread_stl/
  174. pw_thread_threadx/
  175. pw_thread_zephyr/
  176. pw_tls_client/
  177. pw_tls_client_boringssl/
  178. pw_tls_client_mbedtls/
  179. pw_tokenizer/
  180. pw_toolchain/
  181. pw_trace/
  182. pw_trace_tokenized/
  183. pw_transfer/
  184. pw_uart/
  185. pw_uart_mcuxpresso/
  186. pw_unit_test/
  187. pw_unit_test_zephyr/
  188. pw_varint/
  189. pw_watch/
  190. pw_web/
  191. pw_work_queue/
  192. seed/
  193. targets/
  194. third_party/
  195. ts/
  196. zephyr/
  197. .bazelignore
  198. .bazelrc
  199. .bazelversion
  200. .black.toml
  201. .clang-format
  202. .clang-tidy
  203. .eslintrc.cjs
  204. .git-blame-ignore-revs
  205. .gitattributes
  206. .gitignore
  207. .gn
  208. .mypy.ini
  209. .prettierignore
  210. .prettierrc.cjs
  211. .pw_ide.yaml
  212. .pylintrc
  213. .ruff.toml
  214. activate.bat
  215. Android.bp
  216. AUTHORS
  217. bootstrap.bat
  218. bootstrap.fish
  219. bootstrap.sh
  220. BUILD.bazel
  221. BUILD.gn
  222. BUILDCONFIG.gn
  223. CMakeLists.txt
  224. go.mod
  225. go.sum
  226. jest.config.ts
  227. Kconfig.zephyr
  228. LICENSE
  229. MODULE.bazel
  230. MODULE.bazel.lock
  231. modules.gni
  232. OWNERS
  233. package-lock.json
  234. package.json
  235. pigweed.json
  236. PIGWEED_MODULES
  237. pnpm-lock.yaml
  238. README.md
  239. REPO.bazel
  240. rollup-protos.config.js
  241. rollup.config.js
  242. tsconfig.json
  243. WORKSPACE
  244. WORKSPACE_OWNERS
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/.

Links