[haiku-commits] Re: haiku: hrev48646 - src/kits/app

  • From: Adrien Destugues <pulkomandy@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 10 Jan 2015 10:04:03 +0100

On Sat, Jan 10, 2015 at 05:05:21AM +0100, anevilyak@xxxxxxxxx wrote:
> hrev48646 adds 1 changeset to branch 'master'
> old head: 6e9704175eef7a3adbe28f74bd0712b1b2434310
> new head: f894ab70eae60fd72f26403f8ff50d821705fa10
> overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=f894ab7+%5E6e97041
> 
> ----------------------------------------------------------------------------
> 
> f894ab7: BMessage: Fix #11710.
>   
>   The refactored version of Unflatten() encapsulated the raw buffer
>   into a BMemoryIO with a specified size of SIZE_MAX, since the total
>   size of the messageisn't known up front. On 32-bit this was no problem,
>   but on x86_64, this would lead to an overflow in BMemoryIO, since it
>   stores its internal length as a size_t, which on that platform is the same
>   size as off_t. Consequently, when it would cast its length to off_t to
>   compare against the requested seek position in ReadAt/WriteAt, this would
>   overflow to a negative, leading it to reject all requests, which
>   subsequently caused Unflatten() to fail.

Thanks for investigating and finding the issues!

Would it be possible to fix this in BMemoryIO instead?

-- 
Adrien.

Other related posts: