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
This commit is contained in:
Neels Hofmeyr 2016-12-12 14:11:31 +01:00
parent 748022694c
commit a4842afc83
1 changed files with 6 additions and 0 deletions

View File

@ -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;
}