X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fexim_monitor%2Fem_log.c;h=9ff994ced48909eda7eaffd92e85e820f599aa15;hb=af542dcfa62fc2341e8253f10c5c778b887444b9;hp=baa4c8996cb06b391d21df5ef1f2168dc3944f67;hpb=e0df1c8324f0e0c4112302fa473cff6a6110a044;p=exim.git diff --git a/src/exim_monitor/em_log.c b/src/exim_monitor/em_log.c index baa4c8996..9ff994ced 100644 --- a/src/exim_monitor/em_log.c +++ b/src/exim_monitor/em_log.c @@ -2,7 +2,7 @@ * Exim Monitor * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2009 */ +/* Copyright (c) University of Cambridge 1995 - 2016 */ /* See the file NOTICE for conditions of use and distribution. */ /* This module contains code for scanning the main log, @@ -217,7 +217,11 @@ uschar buffer[log_buffer_len]; if (LOG != NULL) { - fseek(LOG, log_position, SEEK_SET); + if (fseek(LOG, log_position, SEEK_SET)) + { + perror("logfile fseek"); + exit(1); + } while (Ufgets(buffer, log_buffer_len, LOG) != NULL) { @@ -364,7 +368,9 @@ link count of zero on the currently open file. */ if (log_datestamping) { uschar log_file_wanted[256]; - string_format(log_file_wanted, sizeof(log_file_wanted), "%s", CS log_file); + /* Do *not* use "%s" here, we need the %D datestamp in the log_file to + * be expanded! */ + string_format(log_file_wanted, sizeof(log_file_wanted), CS log_file); if (Ustrcmp(log_file_wanted, log_file_open) != 0) { if (LOG != NULL) @@ -391,7 +397,11 @@ if (LOG == NULL || { if (LOG != NULL) fclose(LOG); LOG = TEST; - fstat(fileno(LOG), &statdata); + if (fstat(fileno(LOG), &statdata)) + { + fprintf(stderr, "fstat %s: %s\n", log_file_open, strerror(errno)); + exit(1); + } log_inode = statdata.st_ino; } }