]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
1655. [bug] Logging multiple versions w/o a size was broken.
authorMark Andrews <marka@isc.org>
Fri, 11 Jun 2004 00:36:39 +0000 (00:36 +0000)
committerMark Andrews <marka@isc.org>
Fri, 11 Jun 2004 00:36:39 +0000 (00:36 +0000)
                        [RT #11446]

CHANGES
lib/isc/log.c

diff --git a/CHANGES b/CHANGES
index 8f93b5f0f508397a0d62351ad0b76da3ef7a2d7d..548930e306a1b4f54e3d5bf11ce31b38463fd8a7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,7 @@
 1654.  [bug]           isc_result_totext() contained array bounds read
+1655.  [bug]           Logging multiple versions w/o a size was broken.
+                       [RT #11446]
+
                        error.
 
 1650.  [bug]           dig, nslookup: flush standard out after each command.
index 9235c6fed7d2e19ef08ea9d735fe0d5918e341c6..2020bf66983359cef9951fb6c4ff591b030b121c 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: log.c,v 1.70.2.13 2004/06/04 02:19:13 marka Exp $ */
+/* $Id: log.c,v 1.70.2.14 2004/06/11 00:36:39 marka Exp $ */
 
 /* Principal Authors: DCL */
 
@@ -1328,8 +1328,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