diff options
Diffstat (limited to 'plugins/check_ntp_peer.c')
-rw-r--r-- | plugins/check_ntp_peer.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/plugins/check_ntp_peer.c b/plugins/check_ntp_peer.c index 72cec639..6a4401ca 100644 --- a/plugins/check_ntp_peer.c +++ b/plugins/check_ntp_peer.c | |||
@@ -299,6 +299,9 @@ int ntp_request(const char *host, double *offset, int *offset_result, double *ji | |||
299 | if(read(conn, &req, SIZEOF_NTPCM(req)) == -1) | 299 | if(read(conn, &req, SIZEOF_NTPCM(req)) == -1) |
300 | die(STATE_CRITICAL, "NTP CRITICAL: No response from NTP server\n"); | 300 | die(STATE_CRITICAL, "NTP CRITICAL: No response from NTP server\n"); |
301 | DBG(print_ntp_control_message(&req)); | 301 | DBG(print_ntp_control_message(&req)); |
302 | /* discard obviously invalid packets */ | ||
303 | if (ntohs(req.count) > MAX_CM_SIZE) | ||
304 | die(STATE_CRITICAL, "NTP CRITICAL: Invalid paclet received from NTP server\n"); | ||
302 | if (LI(req.flags) == LI_ALARM) li_alarm = 1; | 305 | if (LI(req.flags) == LI_ALARM) li_alarm = 1; |
303 | /* Each peer identifier is 4 bytes in the data section, which | 306 | /* Each peer identifier is 4 bytes in the data section, which |
304 | * we represent as a ntp_assoc_status_pair datatype. | 307 | * we represent as a ntp_assoc_status_pair datatype. |