Browse Source

Assert that severity in logv() is sane. Interesting effects otherwise (It is being used as an array index)

svn:r14006
Peter Palfrader 16 years ago
parent
commit
e6b2d119e8
2 changed files with 4 additions and 0 deletions
  1. 1 0
      ChangeLog
  2. 3 0
      src/common/log.c

+ 1 - 0
ChangeLog

@@ -20,6 +20,7 @@ Changes in version 0.2.1.1-alpha - 2008-??-??
       614.  Bugfix on 0.1.2.x.
     - Make --enable-openbsd-malloc work correctly on Linux with alpha CPUs.
       Fixes bug 625.  Bugfix on 0.2.0.x.
+    - Logging functions now check that the passed severity is sane.
 
   o Minor features:
     - Allow separate log levels to be configured for different logging

+ 3 - 0
src/common/log.c

@@ -261,6 +261,9 @@ logv(int severity, log_domain_mask_t domain, const char *funcname,
 
   /* Call assert, not tor_assert, since tor_assert calls log on failure. */
   assert(format);
+  /* check that severity is sane.  Overrunning the masks array leads to
+   * interesting and hard to diagnose effects */
+  assert(severity >= LOG_ERR && severity <= LOG_DEBUG);
   LOCK_LOGS();
   lf = logfiles;
   while (lf) {