]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Silence CID 329159: Logically dead code in lib/dns/journal.c
authorMark Andrews <marka@isc.org>
Sun, 7 Mar 2021 19:53:30 +0000 (06:53 +1100)
committerMark Andrews <marka@isc.org>
Mon, 8 Mar 2021 05:44:43 +0000 (16:44 +1100)
    *** CID 329159:    (DEADCODE)
    /lib/dns/journal.c: 1719 in dns_journal_print()
    1713      }
    1714      CHECK(dns_difftuple_create(
    1715      diff.mctx, n_soa == 1 ? DNS_DIFFOP_DEL : DNS_DIFFOP_ADD,
    1716      name, ttl, rdata, &tuple));
    1717      dns_diff_append(&diff, &tuple);
    1718
    >>>     CID 329159:    (DEADCODE)
    >>>     Execution cannot reach the expression "printxhdr" inside this statement: "if (++n_put != 0U || printx...".
    1719      if (++n_put != 0 || printxhdr) {
    1720      result = dns_diff_print(&diff, file);
    1721      dns_diff_clear(&diff);
    1722      n_put = 0;
    1723      if (result != ISC_R_SUCCESS) {
    1724      break;
    /lib/dns/journal.c: 1734 in dns_journal_print()
    1728      if (result == ISC_R_NOMORE) {
    1729      result = ISC_R_SUCCESS;
    1730      }
    1731      CHECK(result);
    1732
    1733      if (!printxhdr && n_put != 0) {
    >>>     CID 329159:    (DEADCODE)
    >>>     Execution cannot reach this statement: "result = dns_diff_print(&di...".
    1734      result = dns_diff_print(&diff, file);
    1735      dns_diff_clear(&diff);
    1736      }
    1737      goto cleanup;
    1738
    1739     failure:

(cherry picked from commit 848e336db41aea9d3f37f2a06a43d3cc51b8d4df)

lib/dns/journal.c

index 741da8c294c8f090824a62080aff7a3f7dd140e8..1b473e49665175923b28d0156b0a921a6e3599f0 100644 (file)
@@ -1714,7 +1714,7 @@ dns_journal_print(isc_mem_t *mctx, uint32_t flags, const char *filename,
                        name, ttl, rdata, &tuple));
                dns_diff_append(&diff, &tuple);
 
-               if (++n_put != 0 || printxhdr) {
+               if (++n_put > 100 || printxhdr) {
                        result = dns_diff_print(&diff, file);
                        dns_diff_clear(&diff);
                        n_put = 0;
@@ -1728,7 +1728,7 @@ dns_journal_print(isc_mem_t *mctx, uint32_t flags, const char *filename,
        }
        CHECK(result);
 
-       if (!printxhdr && n_put != 0) {
+       if (n_put != 0) {
                result = dns_diff_print(&diff, file);
                dns_diff_clear(&diff);
        }