git: 30ff1255fcd6 - main - Fix panic in nfs bootp/diskless after 0785c323f3.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 02 Jun 2023 16:57:34 UTC
The branch main has been updated by mav:
URL: https://cgit.FreeBSD.org/src/commit/?id=30ff1255fcd6fc2cdb96924d3185dd7fa6c31c68
commit 30ff1255fcd6fc2cdb96924d3185dd7fa6c31c68
Author: Alexander Motin <mav@FreeBSD.org>
AuthorDate: 2023-06-02 16:53:08 +0000
Commit: Alexander Motin <mav@FreeBSD.org>
CommitDate: 2023-06-02 16:57:26 +0000
Fix panic in nfs bootp/diskless after 0785c323f3.
If there is no interface, count won't be initialized, while cnt is
not even relevant. Check ifp, that really matters, and delete count.
---
sys/nfs/nfs_diskless.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/sys/nfs/nfs_diskless.c b/sys/nfs/nfs_diskless.c
index 8f21861ab27e..001673f7a442 100644
--- a/sys/nfs/nfs_diskless.c
+++ b/sys/nfs/nfs_diskless.c
@@ -190,7 +190,6 @@ nfs_setup_diskless(void)
int cnt, fhlen, is_nfsv3;
uint32_t len;
time_t timeout_at;
- u_int count;
if (nfs_diskless_valid != 0)
return;
@@ -238,20 +237,16 @@ nfs_setup_diskless(void)
retry:
CURVNET_SET(TD_TO_VNET(curthread));
NET_EPOCH_ENTER(et);
-
for (ifp = if_iter_start(&iter); ifp != NULL; ifp = if_iter_next(&iter)) {
- count = if_foreach_lladdr(ifp, nfs_setup_diskless_ifa_cb, &ourdl);
-
- if (count > 0)
+ cnt = if_foreach_lladdr(ifp, nfs_setup_diskless_ifa_cb, &ourdl);
+ if (cnt > 0)
break;
-
}
if_iter_finish(&iter);
NET_EPOCH_EXIT(et);
CURVNET_RESTORE();
- if (cnt > 0) {
+ if (ifp != NULL)
goto match_done;
- }
if (time_uptime < timeout_at) {
pause("nfssdl", hz / 5);