On Thu, Jul 11, 2024 at 12:25 AM Peter Maydell <peter.mayd...@linaro.org> > wrote:
On Wed, 10 Jul 2024 at 09:02, hellord <halouwo...@gmail.com> wrote: > > > > > >> > >> > >> On Tue, Jul 9, 2024 at 10:39 PM Peter Maydell <peter.mayd...@linaro.org> > wrote: > >> Is there a particular reason to use 128MB here? If the > >> runtime only fails on 4GB or more, maybe we should use > >> a larger MAX_CHUNK_SIZE, like 2GB ? > > > > > > According to current analysis, size <= 4GB all are safe, however there > are many > > versions of msvcrt, this bug exists on Server 2008/2019/2022 and Windows > 11(all > > with full latest updates), and it may also exist in other versions, but > it is difficult to > > check each version individually. I am not sure if all versions handle > boundary sizes > > like 2GB/4GB correctly. So I prefer a relatively conservative value: > 128MB. > > > > Maybe we could use #ifdef _WIN32 to differentiate the handling between > Linux and > > Windows. For Linux, it remains unchanged, while for Windows, it > processes by chunks > > with max_chunk_sizeto 1GB. > > I don't think it's worth making this Windows-specific. I agree that > it's OK to be a bit conservative, but 128MB seems to me extremely > conservative. I think we could say, for instance, 512MB or 1GB, without > being at much danger of running into broken implementations here. > OK, I will change the max size to 1GB and send patch V2 in the next few days.