Skip to content

ORT 1.24.6 Cherry Picks#28246

Merged
adrastogi merged 1 commit intorel-1.24.6from
adrastogi/cpu-fix-cherry-pick
Apr 29, 2026
Merged

ORT 1.24.6 Cherry Picks#28246
adrastogi merged 1 commit intorel-1.24.6from
adrastogi/cpu-fix-cherry-pick

Conversation

@adrastogi
Copy link
Copy Markdown
Contributor

This cherry-picks the following commits for the release:

#28171 Fix overflow in CopyCpuTensor for sub-byte types

### Description
<!-- Describe your changes. -->
When copying tensors of sub-byte types (e.g., int4, uint4), two code
paths in the CPU EP's CopyCpuTensor function use the element count as
the byte count during memcpy, but those types are only 4 bits (0.5
bytes). This causes ORT to copy the incorrect number of bytes, which can
cause overflow / corruption.

The fix is to replace the math with `Tensor::SizeInBytes()`, which
already correctly handles sub-byte packing. There is a second site in
`IdentityOp::Compute` which has been refactored to call `CopyCpuTensor`
directly, eliminating the duplicated logic.

The change also adds regression tests for different variations of this
scenario (I was able to use them to reproduce the original issue without
the proposed updates).

### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
This fixes a problem in the CPU EP in the scenario described above.
@adrastogi adrastogi merged commit 800ac32 into rel-1.24.6 Apr 29, 2026
84 of 91 checks passed
@adrastogi adrastogi deleted the adrastogi/cpu-fix-cherry-pick branch April 29, 2026 04:30
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.

3 participants