Wireshark mailing list archives

Re: passing argument 4 of 'pcap_compile_nopcap' discards qualifiers from pointer target typ


From: Guy Harris <guy () alum mit edu>
Date: Sun, 3 Oct 2010 11:02:20 -0700


On Oct 3, 2010, at 5:16 AM, Sake Blok wrote:

The OSX-PPC buildbot is complaining:

capture_dlg.c:266: warning: passing argument 4 of 'pcap_compile_nopcap' discards qualifiers from pointer target type

Indeed the pointer given to pcap_compile_nopcap is declared as a "const gchar *" and the 4th argument of 
pcap_compile_nopcap is declared as a "char *".

How can this be fixed?

Do I have to copy the string first before giving it to pcap_compile_nopcap?

pcap_compile_nopcap() doesn't modify the string, so the only reason to copy the string would be to squelch the warning. 
 In libpcap 1.0.x (which is the version in Snow Leopard), the declaration of pcap_compile_nopcap() was fixed to make 
that argument a "const char *".

Unfortunately, using pcap_open_dead() and pcap_compile() won't help on really old versions of libpcap, as 
pcap_compile()'s declaration wasn't changed to make the filter string argument a "const char *" until libpcap 0.9.x.

Or can I just use a "(char *)" cast? That however would still defeat the purpose of the "const" declaration in the 
first place would it not?

Yes, but, in this particular case, you can, as indicated, trust pcap_compile()/pcap_compile_nopcap() not to try to 
modify the string.  You should probably put a comment in about that.
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe


Current thread: