diff --git a/src/kits/app/LinkReceiver.cpp b/src/kits/app/LinkReceiver.cpp index 97fcc4ef01..80dd34774e 100644 --- a/src/kits/app/LinkReceiver.cpp +++ b/src/kits/app/LinkReceiver.cpp @@ -156,7 +156,8 @@ LinkReceiver::AdjustReplyBuffer(bigtime_t timeout) if (bufferSize <= (ssize_t)kInitialBufferSize) bufferSize = (ssize_t)kInitialBufferSize; else - bufferSize = (bufferSize + B_PAGE_SIZE) - (bufferSize % B_PAGE_SIZE); + bufferSize = (bufferSize + B_PAGE_SIZE - 1) & ~(B_PAGE_SIZE - 1); + if (bufferSize > (ssize_t)kMaxBufferSize) return B_ERROR; // we can't continue