mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 12:54:27 +00:00
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.
This commit is contained in:
parent
1e078fb602
commit
30ff1255fc
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue