Commit 7f5ebef
committed
Merge bitcoin#34302: fuzz: Restore SendMessages coverage in process_message(s) fuzz targets
fabf8d1 fuzz: Restore SendMessages coverage in process_message(s) fuzz targets (MarcoFalke)
fac7fed refactor: Use std::reference_wrapper<AddrMan> in Connman (MarcoFalke)
Pull request description:
*Found and reported by Crypt-iQ (thanks!)*
Currently the process_message(s) fuzz targets do not have any meaningful `SendMessages` code coverage. This is not ideal.
Fix the problem by adding back the coverage, and by hardening the code here, so that the problem hopefully does not happen again in the future.
### Historic context for this regression
The regression was introduced in commit fa11eea, which built a new deterministic peerman object. However, the patch was incomplete, because it was missing one hunk to replace `g_setup->m_node.peerman->SendMessages(&p2p_node);` with `peerman->SendMessages(&p2p_node);`.
This means the stale and empty peerman from the node context and not the freshly created and deterministic peerman was used.
A simple fix would be to just submit the missing patch hunk. However, this still leaves the risk that the issue is re-introduced at any time in the future. So instead, I think the stale and empty peerman should be de-constructed, so that any call to it will lead to a hard sanitizer error and fuzz failure.
Doing that also uncovered another issue: The connman was holding on to a reference to a stale and empty addrman.
So fix all issues by:
* Allowing the addrman reference in connman to be re-seatable
* Clearing all stale objects, before creating new objects, and then using references to the new objects in all code
ACKs for top commit:
Crypt-iQ:
crACK fabf8d1
frankomosh:
ACK fabf8d1
marcofleon:
code review ACK fabf8d1
sedited:
ACK fabf8d1
Tree-SHA512: 2e478102b3e928dc7505f00c08d4b9e4f8368407b100bc88f3eb3b82aa6fea5a45bae736c211f5af1551ca0de1a5ffd4a5d196d9473d4c3b87cfed57c9a0b69dFile tree
5 files changed
+55
-43
lines changed- src
- test
- fuzz
- util
5 files changed
+55
-43
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
506 | 506 | | |
507 | 507 | | |
508 | 508 | | |
509 | | - | |
| 509 | + | |
510 | 510 | | |
511 | 511 | | |
512 | 512 | | |
| |||
2301 | 2301 | | |
2302 | 2302 | | |
2303 | 2303 | | |
2304 | | - | |
| 2304 | + | |
2305 | 2305 | | |
2306 | 2306 | | |
2307 | 2307 | | |
| |||
2323 | 2323 | | |
2324 | 2324 | | |
2325 | 2325 | | |
2326 | | - | |
| 2326 | + | |
2327 | 2327 | | |
2328 | 2328 | | |
2329 | 2329 | | |
2330 | 2330 | | |
2331 | 2331 | | |
2332 | | - | |
| 2332 | + | |
2333 | 2333 | | |
2334 | 2334 | | |
2335 | 2335 | | |
| |||
2389 | 2389 | | |
2390 | 2390 | | |
2391 | 2391 | | |
2392 | | - | |
| 2392 | + | |
2393 | 2393 | | |
2394 | 2394 | | |
2395 | 2395 | | |
| |||
2412 | 2412 | | |
2413 | 2413 | | |
2414 | 2414 | | |
2415 | | - | |
| 2415 | + | |
2416 | 2416 | | |
2417 | 2417 | | |
2418 | 2418 | | |
| |||
2506 | 2506 | | |
2507 | 2507 | | |
2508 | 2508 | | |
2509 | | - | |
| 2509 | + | |
2510 | 2510 | | |
2511 | 2511 | | |
2512 | 2512 | | |
| |||
2526 | 2526 | | |
2527 | 2527 | | |
2528 | 2528 | | |
2529 | | - | |
| 2529 | + | |
2530 | 2530 | | |
2531 | 2531 | | |
2532 | 2532 | | |
| |||
2578 | 2578 | | |
2579 | 2579 | | |
2580 | 2580 | | |
2581 | | - | |
| 2581 | + | |
2582 | 2582 | | |
2583 | 2583 | | |
2584 | 2584 | | |
| |||
2591 | 2591 | | |
2592 | 2592 | | |
2593 | 2593 | | |
2594 | | - | |
| 2594 | + | |
2595 | 2595 | | |
2596 | 2596 | | |
2597 | 2597 | | |
| |||
2646 | 2646 | | |
2647 | 2647 | | |
2648 | 2648 | | |
2649 | | - | |
| 2649 | + | |
2650 | 2650 | | |
2651 | 2651 | | |
2652 | 2652 | | |
| |||
2778 | 2778 | | |
2779 | 2779 | | |
2780 | 2780 | | |
2781 | | - | |
| 2781 | + | |
2782 | 2782 | | |
2783 | 2783 | | |
2784 | 2784 | | |
| |||
2809 | 2809 | | |
2810 | 2810 | | |
2811 | 2811 | | |
2812 | | - | |
| 2812 | + | |
2813 | 2813 | | |
2814 | 2814 | | |
2815 | 2815 | | |
2816 | 2816 | | |
2817 | | - | |
| 2817 | + | |
2818 | 2818 | | |
2819 | 2819 | | |
2820 | 2820 | | |
2821 | 2821 | | |
2822 | 2822 | | |
2823 | 2823 | | |
2824 | | - | |
| 2824 | + | |
2825 | 2825 | | |
2826 | | - | |
| 2826 | + | |
2827 | 2827 | | |
2828 | 2828 | | |
2829 | 2829 | | |
2830 | 2830 | | |
2831 | 2831 | | |
2832 | 2832 | | |
2833 | 2833 | | |
2834 | | - | |
2835 | | - | |
| 2834 | + | |
| 2835 | + | |
2836 | 2836 | | |
2837 | 2837 | | |
2838 | 2838 | | |
| |||
3244 | 3244 | | |
3245 | 3245 | | |
3246 | 3246 | | |
3247 | | - | |
| 3247 | + | |
3248 | 3248 | | |
3249 | 3249 | | |
3250 | 3250 | | |
| |||
3695 | 3695 | | |
3696 | 3696 | | |
3697 | 3697 | | |
3698 | | - | |
| 3698 | + | |
3699 | 3699 | | |
3700 | 3700 | | |
3701 | 3701 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1592 | 1592 | | |
1593 | 1593 | | |
1594 | 1594 | | |
1595 | | - | |
| 1595 | + | |
1596 | 1596 | | |
1597 | 1597 | | |
1598 | 1598 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
67 | 68 | | |
68 | 69 | | |
69 | 70 | | |
70 | | - | |
| 71 | + | |
| 72 | + | |
71 | 73 | | |
72 | 74 | | |
73 | | - | |
| 75 | + | |
74 | 76 | | |
75 | 77 | | |
76 | 78 | | |
77 | 79 | | |
78 | 80 | | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
83 | 87 | | |
84 | | - | |
| 88 | + | |
85 | 89 | | |
86 | 90 | | |
87 | 91 | | |
88 | 92 | | |
89 | 93 | | |
90 | | - | |
| 94 | + | |
| 95 | + | |
91 | 96 | | |
92 | 97 | | |
93 | 98 | | |
| |||
116 | 121 | | |
117 | 122 | | |
118 | 123 | | |
119 | | - | |
| 124 | + | |
120 | 125 | | |
121 | | - | |
122 | | - | |
| 126 | + | |
| 127 | + | |
123 | 128 | | |
124 | 129 | | |
125 | 130 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
60 | | - | |
| 61 | + | |
| 62 | + | |
61 | 63 | | |
62 | 64 | | |
63 | | - | |
| 65 | + | |
64 | 66 | | |
65 | 67 | | |
66 | 68 | | |
67 | 69 | | |
68 | 70 | | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
73 | 77 | | |
74 | | - | |
| 78 | + | |
75 | 79 | | |
76 | 80 | | |
77 | 81 | | |
78 | 82 | | |
79 | | - | |
| 83 | + | |
| 84 | + | |
80 | 85 | | |
81 | 86 | | |
82 | 87 | | |
| |||
115 | 120 | | |
116 | 121 | | |
117 | 122 | | |
118 | | - | |
| 123 | + | |
119 | 124 | | |
120 | 125 | | |
121 | | - | |
122 | | - | |
| 126 | + | |
| 127 | + | |
123 | 128 | | |
124 | 129 | | |
125 | 130 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
| 44 | + | |
43 | 45 | | |
44 | 46 | | |
45 | 47 | | |
| |||
0 commit comments