pw_i2c: Fix invalid copy

Add error checking for copying expected rx data to rx buffer in
MockInitiator to prevent potential seg faults.

Testing:
Create a failed expectation case for reading data.
See the assert instead of seg fault.

Change-Id: I856534b15ecc7f1971af034535264be0f1615fca
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/49481
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Commit-Queue: Kevin Zeng <zengk@google.com>
1 file changed
tree: 6fff0893ef43f1018d65f2e8e1bf27d9f8accf5b
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_arduino_build/
  7. pw_assert/
  8. pw_assert_basic/
  9. pw_assert_log/
  10. pw_base64/
  11. pw_bloat/
  12. pw_blob_store/
  13. pw_boot_armv7m/
  14. pw_build/
  15. pw_bytes/
  16. pw_checksum/
  17. pw_chrono/
  18. pw_chrono_embos/
  19. pw_chrono_freertos/
  20. pw_chrono_stl/
  21. pw_chrono_threadx/
  22. pw_cli/
  23. pw_console/
  24. pw_containers/
  25. pw_cpu_exception/
  26. pw_cpu_exception_cortex_m/
  27. pw_docgen/
  28. pw_doctor/
  29. pw_env_setup/
  30. pw_function/
  31. pw_fuzzer/
  32. pw_hdlc/
  33. pw_hex_dump/
  34. pw_i2c/
  35. pw_interrupt/
  36. pw_interrupt_cortex_m/
  37. pw_kvs/
  38. pw_libc/
  39. pw_log/
  40. pw_log_basic/
  41. pw_log_multisink/
  42. pw_log_null/
  43. pw_log_rpc/
  44. pw_log_sink/
  45. pw_log_tokenized/
  46. pw_malloc/
  47. pw_malloc_freelist/
  48. pw_metric/
  49. pw_minimal_cpp_stdlib/
  50. pw_module/
  51. pw_multisink/
  52. pw_package/
  53. pw_persistent_ram/
  54. pw_polyfill/
  55. pw_preprocessor/
  56. pw_presubmit/
  57. pw_protobuf/
  58. pw_protobuf_compiler/
  59. pw_random/
  60. pw_result/
  61. pw_ring_buffer/
  62. pw_router/
  63. pw_rpc/
  64. pw_snapshot/
  65. pw_span/
  66. pw_status/
  67. pw_stm32cube_build/
  68. pw_stream/
  69. pw_string/
  70. pw_sync/
  71. pw_sync_baremetal/
  72. pw_sync_embos/
  73. pw_sync_freertos/
  74. pw_sync_stl/
  75. pw_sync_threadx/
  76. pw_sys_io/
  77. pw_sys_io_arduino/
  78. pw_sys_io_baremetal_lm3s6965evb/
  79. pw_sys_io_baremetal_stm32f429/
  80. pw_sys_io_stdio/
  81. pw_target_runner/
  82. pw_thread/
  83. pw_thread_embos/
  84. pw_thread_freertos/
  85. pw_thread_stl/
  86. pw_thread_threadx/
  87. pw_tokenizer/
  88. pw_tool/
  89. pw_toolchain/
  90. pw_trace/
  91. pw_trace_tokenized/
  92. pw_transfer/
  93. pw_unit_test/
  94. pw_varint/
  95. pw_watch/
  96. pw_web_ui/
  97. targets/
  98. third_party/
  99. .bazelignore
  100. .bazelrc
  101. .clang-format
  102. .eslintrc.json
  103. .gitattributes
  104. .gitignore
  105. .gn
  106. .prettierrc.js
  107. .pylintrc
  108. activate.bat
  109. AUTHORS
  110. bootstrap.bat
  111. bootstrap.sh
  112. BUILD
  113. BUILD.gn
  114. BUILDCONFIG.gn
  115. CMakeLists.txt
  116. LICENSE
  117. modules.gni
  118. OWNERS
  119. package.json
  120. PW_PLUGINS
  121. README.md
  122. tsconfig.json
  123. WORKSPACE
  124. yarn.lock
README.md

See our website: http://pigweed.dev