UUM-138845
Fixed in 6000.7.0b2Mentioned in 7 release notes.
First fixed in 6000.7.0b2 (Sep 23, 2026); relisted in 6 later releases.
| Version | Section | Risk | Impact | Note |
|---|---|---|---|---|
| 6000.7.0b8 | Fixes Core | Fix | Fixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access. | |
| 6000.7.0b7 | Fixes Core | Fix | Fixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access. | |
| 6000.7.0b6 | Fixes Core | Fix | Fixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access. | |
| 6000.7.0b5 | Fixes Core | Fix | Fixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access. | |
| 6000.7.0b4 | Fixes Core | Fix | Fixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access. | |
| 6000.7.0b3 | Fixes Core | Fix | Fixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access. | |
| 6000.7.0b2 | Fixes Core | Fix | Fixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access. |