merge-script 44bd315924
Merge bitcoin/bitcoin#31676: fuzz: add targets for PCP and NAT-PMP port mapping requests
c73b59d47f1ec6fff1ad9155181c2285a5ef5cf4 fuzz: implement targets for PCP and NAT-PMP port mapping requests (Antoine Poinsot)
1695c8ab5bd3ea2dd0a065bcb8162a973dede7fe fuzz: in FuzzedSock::GetSockName(), return a random-length name (Antoine Poinsot)
0d472c19533a0c13ea8b79e84bcff49230179519 fuzz: never return an uninitialized sockaddr in FuzzedSock::GetSockName (Antoine Poinsot)
39b7e2b5905255645264bc332b934b62441e55b9 fuzz: add steady clock mocking to FuzzedSock (Antoine Poinsot)
6fe1c35c05b353f5cc3f3811fdf46e3b220096e4 pcp: make NAT-PMP error codes uint16_t (Antoine Poinsot)
01906ce912e945c967316f829c1356f8ff38745f pcp: make the ToString method const (Antoine Poinsot)

Pull request description:

  Based on https://github.com/bitcoin/bitcoin/pull/31022, this introduces a fuzz target for `PCPRequestPortMap` and `NATPMPRequestPortMap`.

  Like in #31022 we set `CreateSock` to return a `Sock` which mocks the responses from the server and uses a mocked steady clock for the `Wait`s. Except here we simply respond with fuzzer-provided data until the client stop sending requests. We also sometimes inject errors and connection failures based on fuzzer-provided data.

  We reuse the existing `FuzzedSock`, so a preparatory commit is included that adds steady clock mocking to it. This may be useful for other harnesses as well.

ACKs for top commit:
  laanwj:
    re-ACK c73b59d47f1ec6fff1ad9155181c2285a5ef5cf4
  marcofleon:
    ACK c73b59d47f1ec6fff1ad9155181c2285a5ef5cf4
  dergoegge:
    utACK c73b59d47f1ec6fff1ad9155181c2285a5ef5cf4

Tree-SHA512: 24cd4d958a0999946a0c3d164a242fc3f0a0b66770630252b881423ad0065d29fdaab765014d193b705d3eff397f201d51a88a3ca80c63fd3867745e6f21bb2b
2025-02-21 10:57:09 -05:00
..
2025-02-18 12:29:18 +00:00
2024-10-25 18:09:36 +01:00
2024-09-17 09:54:18 +02:00
2024-11-11 14:14:39 +00:00
2024-11-26 20:47:08 -05:00
2024-12-05 14:37:47 +00:00
2024-08-04 08:51:36 +02:00
2024-11-04 14:19:40 -05:00
2024-05-20 16:48:19 +00:00
2024-07-08 11:12:01 +02:00
2024-09-10 11:20:40 -03:00
2025-01-22 11:29:05 +01:00
2025-01-22 11:29:05 +01:00
2025-01-14 19:01:53 +01:00
2024-10-21 23:24:17 +02:00
2024-08-29 13:49:57 +02:00
2024-12-19 13:46:52 +01:00
2024-07-08 11:12:01 +02:00
2024-12-31 00:04:20 -03:00
2024-12-31 00:04:20 -03:00