Skip to content

avoid integer overflow for cache-limit#620

Open
michaelolbrich wants to merge 1 commit intoicecc:masterfrom
michaelolbrich:overflow
Open

avoid integer overflow for cache-limit#620
michaelolbrich wants to merge 1 commit intoicecc:masterfrom
michaelolbrich:overflow

Conversation

@michaelolbrich
Copy link
Copy Markdown
Contributor

Without this, "mb * 1024 * 1024" overflows for mb >= 2048. The result is then cast into size_t, which is unsigned and usually a 64-bit integer. The end result is, that the cache is now basically unlimited.

Fix this by making mb a size_t as well to avoid the overflow.

Comment thread daemon/main.cpp Outdated
Without this, "mb * 1024 * 1024" overflows for mb >= 2048. The result is
then cast into size_t, which is unsigned and usually a 64-bit integer.
The end result is, that the cache is now basically unlimited.

Fix this by making sure that the multiplication operated on 64-bit
values.
Copy link
Copy Markdown
Contributor

@ossilator ossilator left a comment

Choose a reason for hiding this comment

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

"operate_s_" in the commit message.
also, the statement isn't true on 32-bit systems.

hmm. so pedantically, this is all wrong anyway. it shouldn't be size_t, but off64_t or some such. but i suspect that the code is full of such bugs anyway, so whatever. "nobody" still builds on 32-bit machines anyway.

some error handling would be nice, though. but that's a separate thing.

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.

2 participants