[netcf-devel] [PATCH 1/5] Windows port of netcf api calls

Daniel P. Berrange berrange at redhat.com
Thu Sep 23 12:18:42 UTC 2010


On Thu, Sep 23, 2010 at 08:06:42AM -0400, Laine Stump wrote:
> >
> >> +			sprintf(ipBuf,"%d",inet_ntoa(ipAddr));
> > Where is the guarantee that ipBuf is big enough for this sprintf, or is
> > there a possibility of buffer overflow?
> 
> 
> Beyond that, I'm confused about what this sprintf thinks it's printing - 
> it looks to me like it's printing out the decimal conversion of the 
> *address* of a char* that contains an ASCII representation of an IP 
> address. ???
> 
> BTW, note that inet_ntoa is not threadsafe (the same static buffer is 
> reused by all callers in all threads of the process), so it shouldn't be 
> used. Better to use inet_ntop instead.
> 
> >> +		     "%d.%d.%d.%d", (ip>>   0)&   255, (ip>>   8)&   255,
> >> +		     (ip>>   16)&   255, (ip>>   24)&   255);
> > Maybe it's just me, but I prefer 0xff rather than 255 when masking bits.
> >    If we could guarantee that gnulib gives us %hhd support, you could
> > avoid the mask (and just do the shift).
> 
> 
> Why not use inet_ntop() instead?


None of the inet_XXXX() APIs should ever be used in modern code.
The getaddrinfo + getnameinfo functions suffice for all use cases
previously handled by inet_XXXX()

Regards,
Daniel
-- 
|: Red Hat, Engineering, London    -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org        -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|


More information about the netcf-devel mailing list