⬢ DragonFlyBSD Kernel Audit
DF-4320 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/netif/ath/ath/if_ath_ioctl.c
+++ b/sys/dev/netif/ath/ath/if_ath_ioctl.c
@@ -296,10 +296,22 @@
 		return (error);
 	}
 #ifdef ATH_DIAGAPI
-	case SIOCGATHDIAG:
-		return (ath_ioctl_diag(sc, data));
-	case SIOCGATHPHYERR:
-		return (ath_ioctl_phyerr(sc, data));
+	case SIOCGATHDIAG: {
+		int error;
+
+		error = caps_priv_check_self(SYSCAP_NODRIVER);
+		if (error == 0)
+			error = ath_ioctl_diag(sc, data);
+		return (error);
+	}
+	case SIOCGATHPHYERR: {
+		int error;
+
+		error = caps_priv_check_self(SYSCAP_NODRIVER);
+		if (error == 0)
+			error = ath_ioctl_phyerr(sc, data);
+		return (error);
+	}
 #endif
 	case SIOCGATHSPECTRAL:
 		return (ath_ioctl_spectral(sc, data));