- Used uptr for __sanitizer_kernel_sigset_t.sig to avoid byte order issues on big endian systems
- Corrected the data type of __sanitizer_kernel_sigaction_t.sa_flags which is unsigned int
Aren't there references in source code files that need to be updated for this change? At a glance I see things like "(sizeof(k_set->sig) * 8)".
There the two functions which reference __sanitizer_kernel_sigset_t.sig:
Both of these functions were producing wrong results on big endian machines because __sanitizer_kernel_sigset_t.sig was declared as a char array. Both these functions return correct result with this change.
OK, you're saying that the *kernel* defines the signal set array as some multi-byte structure (unsigned long) and thus endian-ness comes into play between the sanitizer code and the kernel.