From 3386e927950e1bacd2ae7bfdc03ee17885bd9993 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Fri, 11 Jun 2004 00:36:30 +0000 Subject: [PATCH] 1655. [bug] Logging multiple versions w/o a size was broken. [RT #11446] --- CHANGES | 3 ++- lib/isc/log.c | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index e96d2f209d..ce4c4a5b29 100644 --- a/CHANGES +++ b/CHANGES @@ -3,7 +3,8 @@ 1656. [doc] Update DNSSEC description in ARM to cover DS, NSEC DNSKEY and RRSIG. [RT #11542] -1655. [placeholder] rt11446 +1655. [bug] Logging multiple versions w/o a size was broken. + [RT #11446] 1654. [bug] isc_result_totext() contained array bounds read error. diff --git a/lib/isc/log.c b/lib/isc/log.c index 0cbe86a418..031ade33c5 100644 --- a/lib/isc/log.c +++ b/lib/isc/log.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: log.c,v 1.86 2004/06/04 02:19:17 marka Exp $ */ +/* $Id: log.c,v 1.87 2004/06/11 00:36:30 marka Exp $ */ /* Principal Authors: DCL */ @@ -1329,8 +1329,11 @@ isc_log_open(isc_logchannel_t *channel) { if (stat(path, &statbuf) == 0) { regular_file = S_ISREG(statbuf.st_mode) ? ISC_TRUE : ISC_FALSE; /* XXXDCL if not regular_file complain? */ - roll = ISC_TF(regular_file && FILE_MAXSIZE(channel) > 0 && - statbuf.st_size >= FILE_MAXSIZE(channel)); + if ((FILE_MAXSIZE(channel) == 0 && + FILE_VERSIONS(channel) != ISC_LOG_ROLLNEVER) || + (FILE_MAXSIZE(channel) > 0 && + statbuf.st_size >= FILE_MAXSIZE(channel))) + roll = regular_file; } else if (errno == ENOENT) regular_file = ISC_TRUE; else