fix logging: also catch first out-of-bounds logging cat
In map_subsys(), fix the '>' condition to '>=' for array bounds checking.
Also make the bounds checking more strict: after both invocations of
subsys_lib2index(), re-check validity of the array index. If the final index is
still wrong, which should never happen, exit by assertion.
Change-Id: I7ca1a1d47724e40350f1c4dfebe90bad01c965f9
diff --git a/src/logging.c b/src/logging.c
index 7102543..2a8bfdc 100644
--- a/src/logging.c
+++ b/src/logging.c
@@ -339,9 +339,11 @@
if (subsys < 0)
subsys = subsys_lib2index(subsys);
- if (subsys > osmo_log_info->num_cat)
+ if (subsys < 0 || subsys >= osmo_log_info->num_cat)
subsys = subsys_lib2index(DLGLOBAL);
+ OSMO_ASSERT(!(subsys < 0 || subsys >= osmo_log_info->num_cat));
+
return subsys;
}