Skip to content

Use unsigned long integers for computing bit-length of fixed-width types via the CData ABI#251

Merged
CurtHagenlocher merged 2 commits intoapache:mainfrom
mobiusklein:fix/arithmetic-overflow-in-fixed-width-c-import
Feb 2, 2026
Merged

Use unsigned long integers for computing bit-length of fixed-width types via the CData ABI#251
CurtHagenlocher merged 2 commits intoapache:mainfrom
mobiusklein:fix/arithmetic-overflow-in-fixed-width-c-import

Conversation

@mobiusklein
Copy link
Contributor

What's Changed

Uses unsigned 64-bit integers to compute the intermediate bit length of an array to avoid arithmetic overflow.

I could factorize this expression differently to avoid the casts, but I didn't think this was a sufficiently heavy code path that it'd need more attention.

Closes #250 .

…ediate value when importing very big array via CData ABI
Co-authored-by: Adam Reeve <adreeve@gmail.com>
@mobiusklein
Copy link
Contributor Author

Thank you. I misunderstood the argument being made, not that the underlying hardware was not 8-bit byte compliant but that the library defined types did not enforce that invariant.

Copy link
Contributor

@adamreeve adamreeve left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing this @mobiusklein!

I'll leave this open for a little while longer in case anybody else has a comment.

Copy link
Contributor

@CurtHagenlocher CurtHagenlocher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@CurtHagenlocher CurtHagenlocher merged commit 56a9a5e into apache:main Feb 2, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants