Here is a revised version that doesn't break initial queries,
and puts the check in the correct place I think.

ok?

Index: client.c
===================================================================
RCS file: /cvs/src/usr.sbin/ntpd/client.c,v
retrieving revision 1.96
diff -u -p -u -p -r1.96 client.c
--- client.c    9 Jan 2015 07:35:37 -0000       1.96
+++ client.c    9 Jan 2015 21:59:37 -0000
@@ -112,7 +112,7 @@ client_nextaddr(struct ntp_peer *p)
                return (-1);
        }
 
-       if ((p->addr = p->addr->next) == NULL)
+       if (p->addr == NULL || (p->addr = p->addr->next) == NULL)
                p->addr = p->addr_head.a;
 
        p->shift = 0;

Reply via email to