Commit report for master branch

Arran Cudbard-Bell a.cudbardb at freeradius.org
Wed Oct 17 10:50:11 CEST 2012


On 17 Oct 2012, at 09:26, Phil Mayers <p.mayers at imperial.ac.uk> wrote:

> On 10/17/2012 09:04 AM, Brian Candler wrote:
> 
>> Aside: this uses "%u", sizeof(...) for the first argument. Is it guaranteed
>> that sizeof() is int on all platforms?
> 
> Very much not.

Quite.

> sizeof returns size_t which is always unsigned (so never "int"), but otherwise implementation (compiler) dependent. In principle "%zu" is the correct format spec. However, I'm not sure how widely supported that is on older compilers - even on current ones.

%zu was specified in C99, it is by no means new.

> 
>> I guess if there's any doubt,
>> 
>>     "%lu", (long)sizeof(...)
>> 
>> should be pretty safe.
> 
> Yuck. Cast of unsigned to signed :oP
> 
> TBH it's a fairly theoretical argument; sizeof is used on objects whose size tends to be in the range 1-100k and specified at compile time. The odds of sizeof ever returning >2**31 are very, very remote, at least with current system architectures.

:)

-Arran



More information about the Freeradius-Devel mailing list