X-Git-Url: https://git.tcpdump.org/libpcap/blobdiff_plain/9fffbf03961018f765be8ec174620d68a03c8078..09b51d326c38ea8e10ce4da09c09d50e08c5aeb8:/pcap-bpf.c?ds=sidebyside diff --git a/pcap-bpf.c b/pcap-bpf.c index 7a0c2ffe..2898e598 100644 --- a/pcap-bpf.c +++ b/pcap-bpf.c @@ -478,7 +478,7 @@ bpf_open(char *errbuf) { int fd = -1; static const char cloning_device[] = "/dev/bpf"; - int n = 0; + u_int n = 0; char device[sizeof "/dev/bpf0000000000"]; static int no_cloning_bpf = 0; @@ -526,7 +526,7 @@ bpf_open(char *errbuf) * that isn't in use. */ do { - (void)snprintf(device, sizeof(device), "/dev/bpf%d", n++); + (void)snprintf(device, sizeof(device), "/dev/bpf%u", n++); /* * Initially try a read/write open (to allow the inject * method to work). If that fails due to permission @@ -661,7 +661,11 @@ bpf_bind(int fd, const char *name, char *errbuf) case ENXIO: /* * There's no such device. + * + * There's nothing more to say, so clear out the + * error message. */ + errbuf[0] = '\0'; return (PCAP_ERROR_NO_SUCH_DEVICE); case ENETDOWN: @@ -2200,7 +2204,7 @@ pcap_activate_bpf(pcap_t *p) * * Otherwise, fail. */ - if (errno != BPF_BIND_BUFFER_TOO_BIG) { + if (status != BPF_BIND_BUFFER_TOO_BIG) { /* * Special checks on macOS to deal * with the way monitor mode was @@ -3052,7 +3056,11 @@ monitor_mode(pcap_t *p, int set) case ENXIO: /* * There's no such device. + * + * There's nothing more to say, so clear the + * error message. */ + p->errbuf[0] = '\0'; close(sock); return (PCAP_ERROR_NO_SUCH_DEVICE);