◐ Shell
reader mode source ↗
Skip to content

GH-120754: Make PY_READ_MAX smaller than max byteobject size#121633

Closed
cmaloney wants to merge 4 commits into
python:mainfrom
cmaloney:cmaloney/os_read_large_32bit
Closed

GH-120754: Make PY_READ_MAX smaller than max byteobject size#121633
cmaloney wants to merge 4 commits into
python:mainfrom
cmaloney:cmaloney/os_read_large_32bit

Conversation

@cmaloney

@cmaloney cmaloney commented Jul 11, 2024

Copy link
Copy Markdown
Contributor

Currently if code tries to do a os.read larger than the max bytes object length, the size to read gets capped to _PY_READ_MAX, then the code tries to allocate a PyBytes which fails with an OverflowError as the size is longer than what is allocatable.

Since os.read is capping the max size anyways, cap it to a size which is always allocatable as a PyBytes.

This changes behavior from bpo-21932 and enables the large file os.read test on 32 bit platforms, as it should cap the read to a platform acceptable size.

Currently if code tries to do a os.read larger than the max bytes object
length, the size to read gets capped to `_PY_READ_MAX`, then the code
tries to allocate a PyBytes which fails with an OverflowError as the
size is larger than the max py bytes object.

Since os.read is capping the max size anyways, cap it to a size which is
always allocatable as a PyBytes.

This changes behavior from bpo-21932 and enables the large file os.read
test on 32 bit platforms, as it should cap the read to a platform
acceptable size.
@cmaloney cmaloney changed the title gh-120754: Make PY_READ_MAX smaller than max byteobject size Jul 11, 2024
@cmaloney cmaloney closed this Jul 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant