Skip to content

Include patches from 28.1 #70

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 34 commits into from
Feb 12, 2025

Conversation

ajtowns
Copy link

@ajtowns ajtowns commented Feb 12, 2025

No description provided.

achow101 and others added 30 commits October 4, 2024 19:25
89d34cf doc: Sync 28.0 release notes with website (Ava Chow)

Pull request description:

  Since there were some changes to the release notes after the tagging, update the in branch release notes to match those that ended up on the website.

ACKs for top commit:
  tdb3:
    ACK 89d34cf

Tree-SHA512: 1feeafb0f604d36c1817e8bf38cbaef5d41f958dd823c99a19a1a9f7f1f1d38f917872c84b536dd784d7a672904ed2399369693f200a2837cd5707a686d3e634
Fixes a race between node 1 catching up with the chain and mining a
new block in the sanity_check_rbf_estimates subtest.

Github-Pull: bitcoin#31016
Rebased-From: a1576ed
Otherwise:
```bash
	NEW_FUNC[1/23]: ==4710==WARNING: invalid path to external symbolizer!
==4710==WARNING: Failed to use and restart external symbolizer!
0xb72010  (/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/test/fuzz/fuzz+0xa6a010) (BuildId: 2087ad415cb752eea259ed750f3b78a7fcb0b43b)
	NEW_FUNC[2/23]: 0xb72240  (/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/test/fuzz/fuzz+0xa6a240) (BuildId: 2087ad415cb752eea259ed750f3b78a7fcb0b43b)

```

Github-Pull: bitcoin#30961
Rebased-From: c183258
Same as in `DecodeSecret`, we should also clear out the secret data from
the vector resulting from the Base58Check parsing for xprv keys. Note
that the if condition is needed in order to avoid UB, see bitcoin#14242 (commit
d855e4c).

Github-Pull: bitcoin#31166
Rebased-From: 559a8dd
…nflict

CMake parses some paths from the spec of the C compiler, assuming it
will be the linker, resulting in the link to end up with
`-L/usr/lib/gcc/x86_64-w64-mingw32/12-win32` on debian bookworm if both
-win32 and -posix variants are installed, and -win32 is the default
alternative.

This results in the wrong C++ library being linked, missing
std::threads::hardware_concurrency and other threading functions.

To fix this, use the -posix variant of gcc as well when available. This
fixes a regression compared to autotools, where this scenario worked.

Github-Pull: bitcoin#31013
Rebased-From: ae56b32
This makes it easier to track which spots refer to an nId
(as opposed to, for example, bucket index etc. which also use int)

Co-authored-by: Pieter Wuille <[email protected]>

Github-Pull: bitcoin#30568
Rebased-From: 051ba32
With nId being incremented for each addr received,
an attacker could cause an overflow in the past.
(https://bitcoincore.org/en/2024/07/31/disclose-addrman-int-overflow/)
Even though that attack was made infeasible by
rate-limiting (PR bitcoin#22387), to be on the safe side change the
type to an int64_t.

Github-Pull: bitcoin#30568
Rebased-From: 51f7668
8fef83a doc: update manual pages for 28.1rc1 (fanquake)
df77646 build: bump version to 28.1rc1 (fanquake)
9add853 doc: update release notes for 28.1rc1 (fanquake)
1025090 build: disable compiling fuzz/utxo_snapshot.cpp with MSVC (fanquake)
446f5d2 refactor: Drop deprecated space in operator""_mst (MarcoFalke)
9976162 addrman: change nid_type from int to int64_t (Martin Zumsande)
1d0411d addrman, refactor: introduce user-defined type for internal nId (Martin Zumsande)
7fec638 depends: For mingw cross compile use -gcc-posix to prevent library conflict (laanwj)
f998ac6 key: clear out secret data in `DecodeExtKey` (Sebastian Falbesoner)
0773560 ci: add LLVM_SYMBOLIZER_PATH to Valgrind fuzz job (fanquake)
b917334 test: add missing sync to feature_fee_estimation.py (Martin Zumsande)
f072721 doc: add testnet4 section header for config file (Marnix)
6643fd2 doc: Archive 28.0 release notes (Ava Chow)

Pull request description:

  Backports:
  * bitcoin#30568
  * bitcoin#31007
  * bitcoin#31013
  * bitcoin#31016
  * bitcoin#31035
  * bitcoin#31166

  Contains:
  * A commit to do the same as bitcoin#31307.

ACKs for top commit:
  willcl-ark:
    ACK 8fef83a

Tree-SHA512: 58f0c6cb9e5b7ac17ad20141acdc5423dbe8e79cc3a2cf1c4e503d289b75940632c9838c64e3ac733b1a55e65723fc1071ccdd9a860a710256cc88e29f42ccdb
Same as llvm/llvm-project#113951.

Avoids compile failures under clang-20 &
`D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES`:
```bash
In file included from /bitcoin/src/test/fuzz/addition_overflow.cpp:5:
/bitcoin/src/test/fuzz/FuzzedDataProvider.h:209:5: error: use of undeclared identifier 'abort'
  209 |     abort();
      |     ^
/bitcoin/src/test/fuzz/FuzzedDataProvider.h:250:5: error: use of undeclared identifier 'abort'
  250 |     abort();
```

Github-Pull: bitcoin#31448
Rebased-From: bb7e686
The current code does not have a bug, but is implicitly casting -1 to
65535 and the sanitizer has no way to know whether we intend that or
not.

```
FUZZ=bitset src/test/fuzz/fuzz /tmp/fuz

error: implicit conversion from type 'int' of value -1 (32-bit, signed)
to type 'value_type' (aka 'unsigned short') changed the value to 65535
(16-bit, unsigned)

Base64: Qv7bX/8=
```

Github-Pull: bitcoin#31431
Rebased-From: edb41e4
Renames the `MIN` macro to `_TRACEPOINT_TEST_MIN`.

From bitcoin#31418:

```
stderr:
/virtual/main.c:70:9: warning: 'MIN' macro redefined [-Wmacro-redefined]
   70 | #define MIN(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a < _b ? _a : _b; })
      |         ^
include/linux/minmax.h:329:9: note: previous definition is here
  329 | #define MIN(a,b) __cmp(min,a,b)
      |         ^
1 warning generated.
```

fixes: bitcoin#31418

Github-Pull: bitcoin#31419
Rebased-From: 00c1dbd
After port collisions are no longer tolerated but lead to
a startup failure in v28.0, local setups of multiple nodes,
each with a different -port value would not be possible anymore
due to collision of the onion default port - even if the nodes
were using tor or not interested in receiving onion inbound connections.

Fix this by deriving the onion listening port to be -port + 1.
(idea by vasild / laanwj)

Co-authored-by: Vasil Dimov <[email protected]>

Github-Pull: bitcoin#31223
Rebased-From: 0e2b12b
Co-authored-by: Vasil Dimov <[email protected]>

Github-Pull: bitcoin#31223
Rebased-From: 1dd3af8
5576618 doc: update release notes for 28.1rc2 (Ava Chow)
01fe07a examples: Generate example bitcoin.conf (Ava Chow)
7ddfcf3 doc: Generate manpages (Ava Chow)
e0b27b2 build: Bump to 28.1rc2 (Ava Chow)
bdc6b3e Add release note for bitcoin#31223 (Martin Zumsande)
a0585b6 test: add functional test for -port behavior (Martin Zumsande)
bbde830 net, init: derive default onion port if a user specified a -port (Martin Zumsande)
227642d test: fix MIN macro-redefinition (0xb10c)
b8112cf util: use explicit cast in MultiIntBitSet::Fill() (Vasil Dimov)
2835158 fuzz: add cstdlib to FuzzedDataProvider (fanquake)

Pull request description:

  Backports:

  * bitcoin#31223
  * bitcoin#31448
  * bitcoin#31431
  * bitcoin#31419

ACKs for top commit:
  hodlinator:
    re-ACK 5576618

Tree-SHA512: f99f3c5960f18f6894832c5f9a827f97fd3c6e086670341760ce1b77c304d53136492371c59148f3b4bbcfe2d5428c835fe632c61b229b40f1f6f6cf2b72cdca
The mutex (required by TestBlockValidity) must be held after creating
the block, until TestBlockValidity is called. Otherwise, it is possible
that the chain advances in the meantime and leads to a crash in
TestBlockValidity:

 Assertion failed: pindexPrev && pindexPrev == chainstate.m_chain.Tip() (validation.cpp: TestBlockValidity: 4338)

The diff can be reviewed with the git options
--ignore-all-space --function-context

Github-Pull: 31563
Rebased-From: fa62c8b
Co-Authored-By: David Gumberg <[email protected]>

Github-Pull: 31563
Rebased-From: fa63b82
This change corrects an issue where CXXFLAGS were mistakenly overridden
by CFLAGS.

Github-Pull: 31502
Rebased-From: a10bb40
achow101 and others added 4 commits January 2, 2025 20:53
36314b8 doc: Update 28.1 release notes (MarcoFalke)
5891027 doc: generate 28.1 manpages (Ava Chow)
6a68ef9 build: bump to 28.1 (Ava Chow)
5b368f8 depends: Fix CXXFLAGS on NetBSD (Hennadii Stepanov)
05cd448 test: generateblocks called by multiple threads (MarcoFalke)
621c634 rpc: Extend scope of validation mutex in generateblock (MarcoFalke)

Pull request description:

  Backports:

  - bitcoin#31502
  - bitcoin#31563

ACKs for top commit:
  glozow:
    reACK 36314b8
  achow101:
    ACK 36314b8

Tree-SHA512: c7a624b4c166f4322011d98d1ca814ae98eaf5fd2481a507cd65a50216f1abbb91f8643508ce81f64f8b10fa2210db1722254c343253f2a950b9c64667735e9b
@ajtowns ajtowns merged commit 4e23c3a into bitcoin-inquisition:28.x Feb 12, 2025
16 checks passed
@ajtowns ajtowns added this to the 28.x milestone Feb 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants