tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Avoid maximum alignment in _RuneStatePriv



I will hold on, as Joerg wants to look into it.

On 29.05.2020 15:35, Kamil Rytarowski wrote:
> I've double checked that multibyte.h is not leaked into other DSOs other
> than libc (especially citrus ones). Everything is safe.
> 
> I'm landing this now.
> 
> On 13.05.2020 18:55, Kamil Rytarowski wrote:
>> I propose the following patch to remove attribute setting maximum target
>> specific alignment:
>>
>> http://netbsd.org/~kamil/patch-00252-avoid-maximum-alignment.txt
>>
>> mbstate_t has 64-bit alignment, __attribute__ ((aligned)) sets 128-bit
>> alignment and this leads to a lot of reports of UBSan on NetBSD/amd64.
>>
>> This is reproduced with GCC and Clang.
>>
>> Undefined Behavior in
>> /usr/src/lib/libc/compat/../locale/multibyte.h:75:37, member access
>> within misaligned address 0x7f7ff6dbe498 for type 'const _RuneState'
>> (aka 'const union _RuneState') which requires 16 byte alignment
>> Undefined Behavior in
>> /usr/src/lib/libc/compat/../locale/multibyte.h:75:37, load of misaligned
>> address 0x7f7ff6dbe498 for type '_RuneLocale *const' (aka 'struct
>> _RuneLocale *const') which requires 16 byte alignment
>> Undefined Behavior in
>> /usr/src/lib/libc/compat/../locale/multibyte.h:109:24, member access
>> within misaligned address 0x7f7ff6dbe498 for type '_RuneState' (aka
>> 'union _RuneState') which requires 16 byte alignment
>> Undefined Behavior in
>> /usr/src/lib/libc/compat/../locale/multibyte.h:109:24, store to
>> misaligned address 0x7f7ff6dbe498 for type '_RuneLocale *' (aka 'struct
>> _RuneLocale *') which requires 16 byte alignment
>> Undefined Behavior in
>> /usr/src/lib/libc/compat/../locale/multibyte.h:94:40, member access
>> within misaligned address 0x7f7ff6dbe498 for type '_RuneState' (aka
>> 'union _RuneState') which requires 16 byte alignment
>>
>> After local tests, this patch fixed the reports and I don't see any
>> regressions. Every application using locales is affected.
>>
> 
> 


Attachment: signature.asc
Description: OpenPGP digital signature



Home | Main Index | Thread Index | Old Index