diff options
| author | Dave Airlie <airlied@redhat.com> | 2026-03-26 09:41:26 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2026-03-26 09:41:26 +1000 |
| commit | 13c072b8e91a5ccb5855ca1ba6fe3ea467dbf94d (patch) | |
| tree | 4f69505f13121244c22013245534caa2d1b04b52 /drivers/android/binder/thread.rs | |
| parent | 74919e2797727596816a06e55c35352e0707a710 (diff) | |
| parent | f338e77383789c0cae23ca3d48adcc5e9e137e3c (diff) | |
| download | lwn-13c072b8e91a5ccb5855ca1ba6fe3ea467dbf94d.tar.gz lwn-13c072b8e91a5ccb5855ca1ba6fe3ea467dbf94d.zip | |
BackMerge tag 'v7.0-rc4' into drm-next
Linux 7.0-rc4
Needed for rust tree.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/android/binder/thread.rs')
| -rw-r--r-- | drivers/android/binder/thread.rs | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/android/binder/thread.rs b/drivers/android/binder/thread.rs index 0b62d24b2118..c004214b1662 100644 --- a/drivers/android/binder/thread.rs +++ b/drivers/android/binder/thread.rs @@ -1015,12 +1015,9 @@ impl Thread { // Copy offsets if there are any. if offsets_size > 0 { - { - let mut reader = - UserSlice::new(UserPtr::from_addr(trd_data_ptr.offsets as _), offsets_size) - .reader(); - alloc.copy_into(&mut reader, aligned_data_size, offsets_size)?; - } + let mut offsets_reader = + UserSlice::new(UserPtr::from_addr(trd_data_ptr.offsets as _), offsets_size) + .reader(); let offsets_start = aligned_data_size; let offsets_end = aligned_data_size + offsets_size; @@ -1041,11 +1038,9 @@ impl Thread { .step_by(size_of::<u64>()) .enumerate() { - let offset: usize = view - .alloc - .read::<u64>(index_offset)? - .try_into() - .map_err(|_| EINVAL)?; + let offset = offsets_reader.read::<u64>()?; + view.alloc.write(index_offset, &offset)?; + let offset: usize = offset.try_into().map_err(|_| EINVAL)?; if offset < end_of_previous_object || !is_aligned(offset, size_of::<u32>()) { pr_warn!("Got transaction with invalid offset."); |
