Skip to content

[Bugfix] Fix corrupted remote attribute reads with chained mbufs - #1186

Open
lowbaud wants to merge 1 commit into
h2zero:release/2.5from
lowbaud:fix/chained-mbuf-read
Open

[Bugfix] Fix corrupted remote attribute reads with chained mbufs#1186
lowbaud wants to merge 1 commit into
h2zero:release/2.5from
lowbaud:fix/chained-mbuf-read

Conversation

@lowbaud

@lowbaud lowbaud commented Sep 6, 2026

Copy link
Copy Markdown

Fixes characteristic reads when the response is split across multiple mbufs.

I ran into this with MTU 512 while reading a larger characteristic. The data was correct up to byte 279 and corrupted after that. This likely won’t show up with smaller MTUs where the response fits into a single mbuf.

From what I can tell, the issue is that the full packet length is copied from the first mbuf's data pointer instead of walking the mbuf chain. I don't work with NimBLE internals regularly, so please double-check that assumption.

This changes the read handling so chained mbufs are copied correctly instead of being treated as one contiguous buffer.

I targeted release/2.5 since that’s where I reproduced the issue and wanted to keep the change minimal. Happy to retarget this to master if that’s preferred.

Walk the mbuf chain instead of copying the full packet length from the first buffer.
@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 28b02998-fbeb-431a-9acc-7203404f35a2

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.

1 participant