Re: [PATCH] builtin/gc: improve total_ram calculation for HAVE_BSD_SYSCTL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 02, 2025 at 05:23:09PM -0800, Patrick Steinhardt wrote:
> On Wed, Jul 02, 2025 at 07:42:44AM -0700, Carlo Marcelo Arenas Belón wrote:
> > In BSD systems other than macOS, since 9806f5a7bf (gc --auto:
> > exclude base pack if not enough mem to "repack -ad", 2018-04-15),
> > sysctl() use HW_PHYSMEM with the wrong size for the target.
> > 
> > Use the correct type for physical_memory on each option and make
> > sure it is initialized, so it is safe to use even if sysctl() fails.
> 
> We don't use it though when sysctl(3) fails, do we? We only return
> `physical_memory` in case sysctl(3) returned zero, which indicates
> success. Which raises the question whether that function ever returns a
> zero value without writing the value to the pointer.
> 
> Not that it would really hurt to initialize the value, but I found this
> explanation to be puzzling.

Correct; the issue I was trying to address with the initialization was that
the function would return 0, but if there is a size mismatch between the
variable used and the size of HW_PHYSMEM then the other half of the variable
was used uninitialized.

Initializing it, "solves" the problem by making sure that (at least in little
endian) boxes the result was still valid.

Carlo




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux