On Wed, Jul 02, 2025 at 11:42:59AM -0800, Junio C Hamano wrote: > Carlo Marcelo Arenas Belón <carenas@xxxxxxxxx> writes: > > > In the unlikely scenario that sysctl() fails, and uninitialized > > value could be returned. > > > > Initialize the variable used and make sure its expected size > > was correct before using it. > > Oh, that's interesting. I wonder if the system returns physical > memory in 32 bits, we would want fall back doing something silly > like Yes, a FreeBSD 32bit x86 system will report at most 4294963200 from this call, even if using PAE and more memory is available. Eitherway, since the caller for this is ok with a smaller size than real, shouldn't be that big of an issue IMHO. > if (!sysctl(mib, 2, &i64_tmp, &length, NULL, 0)) { > if (length == sizeof(i64_tmp)) > return i64_tmp; > else if (length == 4 && > !sysctl(mib, 2, &i32_tmp, &length, NULL, 0) && > length == 4) > return i32_tmp; > } probably a little bit less silly in 20250702202118.48742-1-carenas@xxxxxxxxx > > While at it, add a cast for consistency. > > OK, I do not mind being more explicit than necessary, but wouldn't > "return X" take care of casting X to the expected return type of > that function? yes it does, but the "implicit" sign conversion will trigger a warning eitherway, I had removed the cast in v3. Carlo