On Apr 4, 2013, at 1:20 AM, Gisle Vanem <gva...@broadpark.no> wrote:

> This is a similar patch to the change of pcap-dos.c:
> https://github.com/mcr/libpcap/commit/73b5f0387199fbaa75130837b931faf770471640
> 
> I.e. the '_interfaces' suffix got lost in some other change to the puplic API.
> (I don't know when). Since 'pcap_findalldevs()' is now a more generic version 
> in pcap.c, the platform-specific function is called 
> 'pcap_findalldevs_interfaces()' in fad-win32.c:

Checked in to the trunk and 1.4 branches.

> 'NameLength = 0' is just in case 'PacketGetAdapterNames()' fails
> w/o setting '*NameLength == 0'. It really could do that; ref. Packet32.c in 
> WinPcap.

Really?  I don't see that.  (The first call should *always* "fail", in the 
sense of returning FALSE; if the cause of the "failure" is that the buffer 
pointer argument is NULL, not that it couldn't get the interface list, it 
should set NameLength to the size of the buffer it needs.)

However, PacketGetAdapterNames() *will* check whether the buffer size argument 
is big enough before checking whether the buffer pointer argument is null; if 
either one is true, it'll "fail" with ERROR_INSUFFICIENT_BUFFER and set 
NameLength to the required buffer size, but, as long as it tests the buffer 
size before the buffer pointer, we should, for cleanliness' sake, initialize 
the buffer size to 0.

_______________________________________________
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers

Reply via email to