diff --git a/inarp.c b/inarp.c
index cd2ab40..931e7c0 100644
--- a/inarp.c
+++ b/inarp.c
@@ -104,16 +104,22 @@
 	return;
 }
 
+static int do_ifreq(int fd, unsigned long type,
+		const char *ifname, struct ifreq *ifreq)
+{
+	memset(ifreq, 0, sizeof(*ifreq));
+	strcpy(ifreq->ifr_name, ifname);
+
+	return ioctl(fd, type, ifreq);
+}
+
 static int get_local_ipaddr(int fd, const char *ifname, struct in_addr *addr)
 {
 	struct sockaddr_in *sa;
 	struct ifreq ifreq;
 	int rc;
 
-	memset(&ifreq, 0, sizeof(ifreq));
-	strcpy(ifreq.ifr_name, ifname);
-
-	rc = ioctl(fd, SIOCGIFADDR, &ifreq);
+	rc = do_ifreq(fd, SIOCGIFADDR, ifname, &ifreq);
 	if (rc) {
 		warn("Error querying local address for %s", ifname);
 		return -1;
@@ -135,10 +141,7 @@
 	struct ifreq ifreq;
 	int rc;
 
-	memset(&ifreq, 0, sizeof(ifreq));
-	strcpy(ifreq.ifr_name, ifname);
-
-	rc = ioctl(fd, SIOCGIFHWADDR, &ifreq);
+	rc = do_ifreq(fd, SIOCGIFHWADDR, ifname, &ifreq);
 	if (rc) {
 		warn("Error querying local MAC address");
 		return -1;
@@ -153,9 +156,7 @@
 	struct ifreq ifreq;
 	int rc;
 
-	memset(&ifreq, 0, sizeof(ifreq));
-	strcpy(ifreq.ifr_name, ifname);
-	rc = ioctl(fd, SIOCGIFINDEX, &ifreq);
+	rc = do_ifreq(fd, SIOCGIFINDEX, ifname, &ifreq);
 	if (rc < 0) {
 		warn("Error querying interface %s", ifname);
 		return -1;
