Debian Patches
Status for tinyarray/1.2.5-2
| Patch | Description | Author | Forwarded | Bugs | Origin | Last update |
|---|---|---|---|---|---|---|
| fix-float-to-integer-conversion.patch | Fix float-to-integer overflow detection across architectures When converting floats to integer, values that are at the edges may behave differently on different architectures. The existing check works fine on amd64 but fails on others (arm64, loong64, ppc64el, riscv64, s390x). This code is inspired by similar code used in other projects: - https://searchfox.org/firefox-main/source/mfbt/FloatingPoint.h#325 - https://github.com/boostorg/numeric_conversion/blob/develop/include/boost/numeric/conversion/detail/converter.hpp#L123 =================================================================== |
Maximiliano Curia <maxy@debian.org> | no | |||
| fix-32bit-integer-hash.patch | Fix integer hash calculation for minimum signed value In 32bit architectures, using Py_hash_t for the sign and result variables leads to overflows when x is LONG_MIN, that cause the hash to evaluate incorrectly. So we cast to unsigned long to avoid the overflow. |
Maximiliano Curia <maxy@debian.org> | no | |||
| fix-armhf-alignment.patch | Fix alignment and allocation size for 64-bit types on 32-bit ARM On 32-bit ARM (armhf/AAPCS), double requires 8-byte alignment while sizeof(PyVarObject) is 12 bytes. Without explicit alignment on Array_base, the compiler inserts 4 bytes of padding before Array<double>::ob_item, causing ob_item to start at offset 16 while tp_basicsize is reported as 12. This leads to heap buffer overruns during allocation and data access. . Align Array_base to double (8 bytes) so tp_basicsize and the start of ob_item match across all architectures. Update test_sizeof to use __basicsize__. |
Maximiliano Curia <maxy@debian.org> | no |
