Rollup merge of #149056 - fneddy:fix_s390_test_padding_overwrite, r=RalfJung
fix the fragment_in_dst_padding_gets_overwritten test on s390x
on s390x 128bit types have a smaller alignment then on x86[^1]. This leads to smaller structs (24 instead of 32 bytes) and therefore the write_unaligned will write outside of the structs boundary.
To fix the test, change the trailing u32 into a u8. This will generate 7 trailing padding bytes on s390x and 15 on x86_64. Also change the start of the garbage data so it will span over x,y and padding:
```
s390x: XXXXXXXXXXXXXXXXY-------
x86_64: XXXXXXXXXXXXXXXXY---------------
GGGGGGGG
```
[^1]: s390x ELF ABI Table 1.1, Page 12 https://github.com/IBM/s390x-abi
This commit is contained in:
commit
5172159dfd
1 changed files with 1 additions and 0 deletions
|
|
@ -68,6 +68,7 @@ const _PARTIAL_OVERWRITE: () = {
|
|||
};
|
||||
|
||||
#[allow(dead_code)]
|
||||
#[cfg(not(target_arch = "s390x"))] // u128 is less aligned on s390x, removing the padding
|
||||
fn fragment_in_dst_padding_gets_overwritten() {
|
||||
#[repr(C)]
|
||||
struct Pair {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue