diff options
| author | Cy Schubert <cy@FreeBSD.org> | 2020-03-04 13:59:29 +0000 |
|---|---|---|
| committer | Cy Schubert <cy@FreeBSD.org> | 2020-03-04 13:59:29 +0000 |
| commit | 5171bc9b11192d9ad273db7854787eaa65eb9997 (patch) | |
| tree | b872a53605ef14ae76de1104afb4be189d1a958a /ntpd/ntp_leapsec.c | |
| parent | 360c01464aee3bc4c520898a675f35967db09ac2 (diff) | |
Diffstat (limited to 'ntpd/ntp_leapsec.c')
| -rw-r--r-- | ntpd/ntp_leapsec.c | 69 |
1 files changed, 36 insertions, 33 deletions
diff --git a/ntpd/ntp_leapsec.c b/ntpd/ntp_leapsec.c index 95a06736751ba..7d20873d618d4 100644 --- a/ntpd/ntp_leapsec.c +++ b/ntpd/ntp_leapsec.c @@ -422,7 +422,8 @@ int/*BOOL*/ leapsec_load_stream( FILE * ifp , const char * fname, - int/*BOOL*/ logall) + int/*BOOL*/ logall, + int/*BOOL*/ vhash) { leap_table_t *pt; int rcheck; @@ -430,36 +431,37 @@ leapsec_load_stream( if (NULL == fname) fname = "<unknown>"; - rcheck = leapsec_validate((leapsec_reader)getc, ifp); - if (logall) - switch (rcheck) - { - case LSVALID_GOODHASH: - msyslog(LOG_NOTICE, "%s ('%s'): good hash signature", - logPrefix, fname); - break; - - case LSVALID_NOHASH: - msyslog(LOG_ERR, "%s ('%s'): no hash signature", - logPrefix, fname); - break; - case LSVALID_BADHASH: - msyslog(LOG_ERR, "%s ('%s'): signature mismatch", - logPrefix, fname); - break; - case LSVALID_BADFORMAT: - msyslog(LOG_ERR, "%s ('%s'): malformed hash signature", - logPrefix, fname); - break; - default: - msyslog(LOG_ERR, "%s ('%s'): unknown error code %d", - logPrefix, fname, rcheck); - break; - } - if (rcheck < 0) - return FALSE; - - rewind(ifp); + if (vhash) { + rcheck = leapsec_validate((leapsec_reader)getc, ifp); + if (logall) + switch (rcheck) + { + case LSVALID_GOODHASH: + msyslog(LOG_NOTICE, "%s ('%s'): good hash signature", + logPrefix, fname); + break; + + case LSVALID_NOHASH: + msyslog(LOG_ERR, "%s ('%s'): no hash signature", + logPrefix, fname); + break; + case LSVALID_BADHASH: + msyslog(LOG_ERR, "%s ('%s'): signature mismatch", + logPrefix, fname); + break; + case LSVALID_BADFORMAT: + msyslog(LOG_ERR, "%s ('%s'): malformed hash signature", + logPrefix, fname); + break; + default: + msyslog(LOG_ERR, "%s ('%s'): unknown error code %d", + logPrefix, fname, rcheck); + break; + } + if (rcheck < 0) + return FALSE; + rewind(ifp); + } pt = leapsec_get_table(TRUE); if (!leapsec_load(pt, (leapsec_reader)getc, ifp, TRUE)) { switch (errno) { @@ -498,7 +500,8 @@ leapsec_load_file( const char * fname, struct stat * sb_old, int/*BOOL*/ force, - int/*BOOL*/ logall) + int/*BOOL*/ logall, + int/*BOOL*/ vhash) { FILE * fp; struct stat sb_new; @@ -551,7 +554,7 @@ leapsec_load_file( return FALSE; } - rc = leapsec_load_stream(fp, fname, logall); + rc = leapsec_load_stream(fp, fname, logall, vhash); fclose(fp); return rc; } |
