Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR addresses two issues detected by ASAN/UBSAN sanitizers: a potential integer overflow in a bit shift operation and a memory leak from an unreferenced libusb device.
Changes:
- Fixed integer overflow by casting
linkidtouint32_tbefore bit shifting in theCOMBINE_IDSmacro - Added
libusb_unref_device()call to prevent memory leak after opening USB device
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| include/XLink/XLinkPrivateFields.h | Cast linkid to uint32_t in COMBINE_IDS macro to prevent byte shift overflow |
| src/pc/protocols/usb_host.cpp | Added libusb_unref_device call to properly release device reference after opening |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
asahtik
reviewed
Jan 27, 2026
asahtik
approved these changes
Jan 27, 2026
Contributor
asahtik
left a comment
There was a problem hiding this comment.
Have one nitpick, otherwise LGTM
Co-authored-by: asahtik <38485424+asahtik@users.noreply.github.com>
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.
Purpose
Added minor fixes to solve issues detected by ASAN/UBSAN.
Specification
This solves 2 issues, firstly:
result of byte shift cannot be represented with type intand also a memory leak originating from missing unreferencing of a libusb device.Dependencies & Potential Impact
None / not applicable
Deployment Plan
None / not applicable
Testing & Validation
This was tested with the sanitizers, and later using the HIL tests.