From 9d8ad37ced11afac107a2b7d8d1bd95c7e1aa9f8 Mon Sep 17 00:00:00 2001 From: Nickolai Zeldovich Date: Fri, 26 Jul 2002 21:27:55 +0000 Subject: [PATCH] Verify that afs_GetCellByIndex() returns a valid cell -- it might be NULL if afs_NewCell() aborted partway through, which could be the case of the CellServDB file has a typo. --- src/afs/afs_dynroot.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/afs/afs_dynroot.c b/src/afs/afs_dynroot.c index 64096a818e..b90d968bcf 100644 --- a/src/afs/afs_dynroot.c +++ b/src/afs/afs_dynroot.c @@ -299,12 +299,13 @@ afs_RefreshDynroot() for (cellidx = 0; cellidx < maxcellidx; cellidx++) { c = afs_GetCellByIndex(cellidx, READ_LOCK, 0 /* don't refresh */); - afs_dynroot_addDirEnt(dirHeader, &curPage, &curChunk, - c->cellName, VNUM_FROM_CIDX_RW(cellidx, 0)); + if (!c) continue; dotCell = afs_osi_Alloc(strlen(c->cellName) + 2); strcpy(dotCell, "."); strcat(dotCell, c->cellName); + afs_dynroot_addDirEnt(dirHeader, &curPage, &curChunk, + c->cellName, VNUM_FROM_CIDX_RW(cellidx, 0)); afs_dynroot_addDirEnt(dirHeader, &curPage, &curChunk, dotCell, VNUM_FROM_CIDX_RW(cellidx, 1));