Commit b330bdec authored by Yawning Angel's avatar Yawning Angel
Browse files

Add a string representation for LD_SCHED, and a extra sanity check.

This both fixes the problem, and ensures that forgetting to update
domain_list in the future will trigger the bug codepath instead of
a NULL pointer deref.
parent ac8f2354
Loading
Loading
Loading
Loading

changes/bug14740

0 → 100644
+5 −0
Original line number Diff line number Diff line
  o Minor bugfixes:
    - Avoid crashing when there are more log domains than entries in
      domain_list.  Bugfix on 0.2.3.1-alpha.
    - Add a string representation for LD_SCHED.  Fixes bug 14740;
      bugfix on 0.2.6.1-alpha.
+4 −2
Original line number Diff line number Diff line
@@ -1215,7 +1215,8 @@ log_level_to_string(int level)
static const char *domain_list[] = {
  "GENERAL", "CRYPTO", "NET", "CONFIG", "FS", "PROTOCOL", "MM",
  "HTTP", "APP", "CONTROL", "CIRC", "REND", "BUG", "DIR", "DIRSERV",
  "OR", "EDGE", "ACCT", "HIST", "HANDSHAKE", "HEARTBEAT", "CHANNEL", NULL
  "OR", "EDGE", "ACCT", "HIST", "HANDSHAKE", "HEARTBEAT", "CHANNEL",
  "SCHED", NULL
};

/** Return a bitmask for the log domain for which <b>domain</b> is the name,
@@ -1245,7 +1246,8 @@ domain_to_string(log_domain_mask_t domain, char *buf, size_t buflen)
    const char *d;
    int bit = tor_log2(domain);
    size_t n;
    if (bit >= N_LOGGING_DOMAINS) {
    if ((unsigned)bit >= sizeof(domain_list)/sizeof(*domain_list) - 1 ||
        bit >= N_LOGGING_DOMAINS) {
      tor_snprintf(buf, buflen, "<BUG:Unknown domain %lx>", (long)domain);
      return buf+strlen(buf);
    }