diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-12-12 14:11:31 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-12-12 16:56:54 +0100 |
commit | a4842afc83334f97653e6cca6220b19f53696509 (patch) | |
tree | 7a5e44d3e65ef54ebb2c646f3df1fe52d50631bc | |
parent | 748022694c57ce7b9412469b8190c7d232818a69 (diff) |
show bug in logging: log_set_category_filter on DL* categories
Add a check to logging_test.c to show a bug: passing an internal DL* category
constant to log_set_category_filter() results in a negative array index and
undefined behavior. A sanitize build should catch this.
The bug is confirmed by the fact that logging_test.err stays the same
(hopefully) although a logging output should appear from this patch. The test
could as well segfault or anything else, it's a bit of a gamble.
This bug will be fixed along with the expectation in a subsequent patch.
Change-Id: Ie2da77c642a84cafc0f528985930697ec167183b
-rw-r--r-- | tests/logging/logging_test.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/logging/logging_test.c b/tests/logging/logging_test.c index 5ef214d8..ce8aac81 100644 --- a/tests/logging/logging_test.c +++ b/tests/logging/logging_test.c @@ -121,5 +121,11 @@ int main(int argc, char **argv) DEBUGP(log_info.num_cat + 1, "You should see this on DLGLOBAL (d)\n"); DEBUGP(log_info.num_cat, "You should see this on DLGLOBAL (e)\n"); + /* Check log_set_category_filter() with internal categories */ + log_parse_category_mask(stderr_target, "DLGLOBAL,3"); + DEBUGP(DLGLOBAL, "You should not see this (DLGLOBAL not on DEBUG)\n"); + log_set_category_filter(stderr_target, DLGLOBAL, 1, LOGL_DEBUG); + DEBUGP(DLGLOBAL, "You should see this (DLGLOBAL on DEBUG)\n"); + return 0; } |