Repository navigation
Release v0.8.2: merge upstream ancestry and protocol fix - #26
Merged
Merged
Conversation
readUserMsg sizes make([]byte, header.UserMsgLen) from the wire header with no bound, so a small userMsg frame declaring a large length forces a large allocation on the receiver. This is the userMsg path of the same issue hashicorp#357 fixed for push-pull state. Fixes: hashicorp#360
decompressBuffer drains the LZW reader with io.Copy into an unbounded buffer, so a small compressMsg expands without limit and can exhaust memory. Cap the output at maxDecompressedBytes with io.CopyN and error past it.
The `make test` target is missing the argument to `-count`, which causes it to fail.
…oup (hashicorp#365) Bumps the actions group with 1 update: [actions/setup-go](https://github.com/actions/setup-go). Updates `actions/setup-go` from 6.5.0 to 7.0.0 - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](actions/setup-go@924ae3a...b7ad1da) --- updated-dependencies: - dependency-name: actions/setup-go dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Add memberlist security model document
If a compressed message is empty after decompression, the `readStream` method will attempt to index into it and panic. Do a length check here and treat such malformed messages as an error. Ref: https://hashicorp.atlassian.net/browse/PSA-2897 Ref: https://hashicorp.atlassian.net/browse/NMD-1624
The protocol version array is not length-checked everywhere, which can result in a panic if we deference a Vsn off the wire that's short. Ref: https://hashicorp.atlassian.net/browse/PSA-2897 Ref: https://hashicorp.atlassian.net/browse/NMD-1624
…oup (hashicorp#372) Bumps the actions group with 1 update: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 7.0.0 to 7.0.1 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@9c091bb...3d3c42e) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…corp#373) Bumps the go group with 1 update: [github.com/hashicorp/go-metrics](https://github.com/hashicorp/go-metrics). Updates `github.com/hashicorp/go-metrics` from 0.6.0 to 0.6.1 - [Release notes](https://github.com/hashicorp/go-metrics/releases) - [Commits](hashicorp/go-metrics@v0.6.0...v0.6.1) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-metrics dependency-version: 0.6.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the go group with 2 updates: [github.com/miekg/dns](https://github.com/miekg/dns) and [github.com/stretchr/testify](https://github.com/stretchr/testify). Updates `github.com/miekg/dns` from 1.1.72 to 1.1.73 - [Commits](miekg/dns@v1.1.72...v1.1.73) Updates `github.com/stretchr/testify` from 1.11.1 to 1.12.1 - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](stretchr/testify@v1.11.1...v1.12.1) --- updated-dependencies: - dependency-name: github.com/miekg/dns dependency-version: 1.1.73 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go - dependency-name: github.com/stretchr/testify dependency-version: 1.12.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Remove the go-metrics compatibility shim so that downstream consumers no longer need build tags.
Record upstream ancestry through 9378459. Preserve Mori implementations of the security fixes, standard-library-only metrics and codec, contributor documentation, and pinned CI gates, which already incorporate or supersede these upstream changes. Validation: make ci passes with Go 1.27.1.
Dead and left records may retain older core or delegate versions after a rolling upgrade. Exclude them from speaking-version checks while preserving validation of every remote version vector and compatibility checks for alive and suspect peers. Add regression coverage for both local and remote records and malformed vectors in every state. Validation: RED on eight retired-node cases, GREEN focused tests, make ci, and all four fuzz smoke targets.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Merge
sync/sep25intomainand prepare Mori v0.8.2. Use a merge commit to retain the original upstream commits and the ancestry reconciliation from #25.Retained dead/left node records no longer reject push/pull exchanges because they spoke an older core or delegate protocol. Alive and suspect peers still undergo compatibility checks; malformed version vectors are rejected in every state. The Go API and wire encoding are unchanged.
The changelog records v0.8.2 and leaves an empty Unreleased section for subsequent work. After this PR merges and main's checks pass, tag the merge commit
v0.8.2and publish its release notes.Validation
CGO_ENABLED=0 GOTOOLCHAIN=local make cipasses with Go 1.27.1, including amd64/386 tests, race detection (the cgo exception), lint, cross builds, dependency audit, and benchmark smoke.make fuzz-smoke FUZZ_TIME=5s(about 3.1 million executions); this PR additionally runs the CI fuzz smoke.After the fix, the focused tests and full gates passed. Full conflict-resolution and validation details are in #25.
Checklist
make cipasses; no wire encoding or decoder changes.