avoid-losing-when-sorting-server-prefs-if-a-server-has-left-out-from-under-us-while...
authorDerrick Brashear <shadow@dementia.org>
Tue, 9 Oct 2001 06:56:43 +0000 (06:56 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 9 Oct 2001 06:56:43 +0000 (06:56 +0000)
but it would be better to figure out how we're losing a server out from
under us.

src/afs/afs_server.c

index f60691c..21a8898 100644 (file)
@@ -801,10 +801,13 @@ void afs_SortServers(struct server *aservers[], int count)
     for (i=0; i<count; i++) {
        if (!aservers[i]) break;
        for (low=i,j=i+1; j<=count; j++) {
-         if (!aservers[j]) break;
-         if (aservers[j]->addr->sa_iprank < aservers[low]->addr->sa_iprank) {
-            low = j;
-         }
+          if ((!aservers[j]) || (!aservers[j]->addr)) 
+              break;
+          if ((!aservers[low]) || (!aservers[low]->addr))
+              break;
+          if (aservers[j]->addr->sa_iprank < aservers[low]->addr->sa_iprank) {
+              low = j;
+          }
        }
        if (low != i) {
          ts = aservers[i];