From 1bfbeb3ca8aaf4b8ff045984b6407c918fad093e Mon Sep 17 00:00:00 2001 From: dtucker <> Date: Mon, 13 Dec 2004 12:22:52 +0000 Subject: [PATCH] Discard replies with alarm flag set or invalid stratum; ok henning@ --- src/usr.sbin/ntpd/client.c | 6 +++++- src/usr.sbin/ntpd/ntp.h | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/usr.sbin/ntpd/client.c b/src/usr.sbin/ntpd/client.c index 94a8613a..e066d310 100644 --- a/src/usr.sbin/ntpd/client.c +++ b/src/usr.sbin/ntpd/client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: client.c,v 1.47 2004/12/09 20:24:46 mickey Exp $ */ +/* $OpenBSD: client.c,v 1.48 2004/12/13 12:22:52 dtucker Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer @@ -198,6 +198,10 @@ client_dispatch(struct ntp_peer *p, u_int8_t settime) msg.orgtime.fractionl != p->query->msg.xmttime.fractionl) return (0); + if ((msg.status & LI_ALARM) == LI_ALARM || msg.stratum == 0 || + msg.stratum > NTP_MAXSTRATUM) + return (0); + /* * From RFC 2030 (with a correction to the delay math): * diff --git a/src/usr.sbin/ntpd/ntp.h b/src/usr.sbin/ntpd/ntp.h index 7da44fca..1c25e249 100644 --- a/src/usr.sbin/ntpd/ntp.h +++ b/src/usr.sbin/ntpd/ntp.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ntp.h,v 1.10 2004/12/08 15:47:38 mickey Exp $ */ +/* $OpenBSD: ntp.h,v 1.11 2004/12/13 12:22:52 dtucker Exp $ */ /* * Copyright (c) 2004 Henning Brauer @@ -145,5 +145,6 @@ struct ntp_query { #define JAN_1970 2208988800UL /* 1970 - 1900 in seconds */ #define NTP_VERSION 4 +#define NTP_MAXSTRATUM 15 #endif /* _NTP_H_ */