show bug in logging: erratic redirection to DLGLOBAL for first invalid category

Add a check to logging_test.c to show a bug: when a logging category value that
is the first out-of-bounds value is passed to the logging system, the internal
map_subsys() fails to redirect to DLGLOBAL due to a flawed conditional. This
results in a too large 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: I12bf38b6c1f85e2d7bf5a15f942dfe0beed41eba
This commit is contained in:
Neels Hofmeyr 2016-12-12 14:42:56 +01:00
parent 42240de04c
commit a280b82f8e
1 changed files with 1 additions and 0 deletions

View File

@ -115,6 +115,7 @@ int main(int argc, char **argv)
log_parse_category_mask(stderr_target, "DLGLOBAL,1");
DEBUGP(osmo_log_info->num_cat + 1, "You should see this on DLGLOBAL (a)\n");
DEBUGP(osmo_log_info->num_cat + 100, "You should see this on DLGLOBAL (b)\n");
DEBUGP(osmo_log_info->num_cat, "You should see this on DLGLOBAL (c)\n");
return 0;
}