From 4a47d65ccd591d52830f31e03485b5ab35572c30 Mon Sep 17 00:00:00 2001 From: Matheus Date: Thu, 23 Apr 2026 16:05:48 -0300 Subject: [PATCH] sockfs: properly set hwaddr type --- kernel-src/fs/sockfs.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel-src/fs/sockfs.c b/kernel-src/fs/sockfs.c index 784ae66d..439cc727 100644 --- a/kernel-src/fs/sockfs.c +++ b/kernel-src/fs/sockfs.c @@ -122,8 +122,15 @@ static int handle_ifreq(unsigned long request, ifreq_t *uifreq, cred_t *cred) { return e; netdev->ip = sockaddr.ipv4addr.addr; break; - case SIOCGIFHWADDR: + case SIOCGIFHWADDR: { + short hwaddr_type = (netdev->flags & NETDEV_FLAGS_LOOPBACK) ? ARPHRD_LOOPBACK : ARPHRD_ETHER; + + e = USERCOPY_POSSIBLY_TO_USER(&uifreq->addr.type, &hwaddr_type, sizeof(hwaddr_type)); + if (e) + return e; + return USERCOPY_POSSIBLY_TO_USER(uifreq->addr.addr, netdev->mac.address, sizeof(mac_t)); + } case SIOCGIFMTU: { int mtu = netdev->mtu; return USERCOPY_POSSIBLY_TO_USER(&uifreq->mtu, &mtu, sizeof(mtu));