git: 862483bd3500 - releng/14.0 - netdump: Check the return value of ifunit_ref()

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Mon, 09 Oct 2023 18:13:26 UTC
The branch releng/14.0 has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=862483bd3500aacc1546d6dfaa940a43e23e096b

commit 862483bd3500aacc1546d6dfaa940a43e23e096b
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2023-10-02 12:08:20 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-10-09 18:07:08 +0000

    netdump: Check the return value of ifunit_ref()
    
    We may fail to match if the specific interface doesn't exist or was
    renamed.
    
    Approved by:    re (gjb)
    PR:             273715
    Reported by:    grembo
    MFC after:      1 week
    
    (cherry picked from commit d94d07d58141dcff48f01c6b3e5a31de9d7a7938)
    (cherry picked from commit d08ef6f7da3943dc49999988e6c2ac03644bdaf1)
---
 sys/netinet/netdump/netdump_client.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sys/netinet/netdump/netdump_client.c b/sys/netinet/netdump/netdump_client.c
index 35167f690ed2..0f0cf4dbb79f 100644
--- a/sys/netinet/netdump/netdump_client.c
+++ b/sys/netinet/netdump/netdump_client.c
@@ -451,6 +451,8 @@ netdump_configure(struct diocskerneldump_arg *conf, struct thread *td)
 		CURVNET_SET(vnet0);
 		ifp = ifunit_ref(conf->kda_iface);
 		CURVNET_RESTORE();
+		if (ifp == NULL)
+			return (ENODEV);
 		if (!DEBUGNET_SUPPORTED_NIC(ifp)) {
 			if_rele(ifp);
 			return (ENODEV);