summaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorOtto Moerbeek <otto@cvs.openbsd.org>2005-10-16 18:23:46 +0000
committerOtto Moerbeek <otto@cvs.openbsd.org>2005-10-16 18:23:46 +0000
commit14d3e879f4c504b87ea309e2ae1e198d1572aaa0 (patch)
tree14dc570f1ca70dc1524c861fa2d267a93a151c9b /usr.sbin
parent888e2808d2dc88765f897eb56e4e744a726799d5 (diff)
Simplify some error paths. From Andrey Matveev. ok canacar@
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/tcpdump/privsep_pcap.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/usr.sbin/tcpdump/privsep_pcap.c b/usr.sbin/tcpdump/privsep_pcap.c
index 375bd3984f9..685fe344720 100644
--- a/usr.sbin/tcpdump/privsep_pcap.c
+++ b/usr.sbin/tcpdump/privsep_pcap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: privsep_pcap.c,v 1.12 2005/09/29 18:45:32 canacar Exp $ */
+/* $OpenBSD: privsep_pcap.c,v 1.13 2005/10/16 18:23:45 otto Exp $ */
/*
* Copyright (c) 2004 Can Erkin Acar
@@ -165,11 +165,7 @@ priv_pcap_setfilter(pcap_t *hpcap, int oflag, u_int32_t netmask)
return (fcode);
err:
- if (fcode) {
- if (fcode->bf_insns)
- free(fcode->bf_insns);
- free(fcode);
- }
+ free(fcode);
return (NULL);
}
@@ -179,12 +175,12 @@ int
pcap_live(const char *device, int snaplen, int promisc, u_int dlt)
{
char bpf[sizeof "/dev/bpf0000000000"];
- int fd = -1, n = 0;
+ int fd, n = 0;
struct ifreq ifr;
unsigned v;
if (device == NULL || snaplen <= 0)
- goto error;
+ return (-1);
do {
snprintf(bpf, sizeof(bpf), "/dev/bpf%d", n++);
@@ -192,7 +188,7 @@ pcap_live(const char *device, int snaplen, int promisc, u_int dlt)
} while (fd < 0 && errno == EBUSY);
if (fd < 0)
- goto error;
+ return (-1);
v = 32768; /* XXX this should be a user-accessible hook */
ioctl(fd, BIOCSBLEN, &v);
@@ -214,8 +210,7 @@ pcap_live(const char *device, int snaplen, int promisc, u_int dlt)
return (fd);
error:
- if (fd >= 0)
- close(fd);
+ close(fd);
return (-1);
}