ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
April 17th, 2024 | 14:30-16:00 SGT (UTC+8) | Online

Wireshark-dev: Re: [Wireshark-dev] g_snprintf() and sizeof

From: Jakub Zawadzki <darkjames@xxxxxxxxxxxxxxxx>
Date: Thu, 19 Mar 2009 20:33:15 +0100
On Thu, Mar 19, 2009 at 11:12:03AM -0700, Guy Harris wrote:
> 
> On Mar 19, 2009, at 10:44 AM, wmeier@xxxxxxxxxxxxx wrote:
> 
> > -As suggested by Jakub Zawadzki: use sizeof(...) rather than a  
> > numeric constant in various places;
> 
> Warning: g_snprintf()'s function signature has an annoying botch in it  
> - the size argument is a gulong, not a gsize.
> 
> Not a problem in the UN*X and Windows ILP32 environment and in the  
> UN*X LP64 environment, but it causes the Microsoft compiler to  
> (correctly) warn about a conversion from a 64-bit integer to a 32-bit  
> integer in the Windows LLP64 environment.  Cast sizeof - ...

Btw. I've just check log of Win64 build #116 [1]
For instance in packet-vcdu.c:203 there is:
  g_snprintf(juliantime, sizeof(juliantime), fmt, year, julianday, hour, minute, second, pb5_milliseconds);
and it compiles without warning, so if size value is known compile-time we don't need cast size to gulong.
(Uff...)

[1] - http://buildbot.wireshark.org/trunk/builders/Windows-XP-Win64/builds/116/steps/nmake%20all/logs/stdio