mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
log: correct and check array size of log categories
The log command has led to NULL dereferences if an unknown category name name was used due to missing entries in the list of category names. Add compile time checks for the array sizes of log_cat_name and log_lvl_name to avoid future mishaps. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
920157678b
commit
2a0cbf3bca
1 changed files with 8 additions and 2 deletions
10
common/log.c
10
common/log.c
|
@ -13,7 +13,7 @@
|
|||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
static const char *log_cat_name[LOGC_COUNT - LOGC_NONE] = {
|
||||
static const char *log_cat_name[] = {
|
||||
"none",
|
||||
"arch",
|
||||
"board",
|
||||
|
@ -28,7 +28,10 @@ static const char *log_cat_name[LOGC_COUNT - LOGC_NONE] = {
|
|||
"acpi",
|
||||
};
|
||||
|
||||
static const char *log_level_name[LOGL_COUNT] = {
|
||||
_Static_assert(ARRAY_SIZE(log_cat_name) == LOGC_COUNT - LOGC_NONE,
|
||||
"log_cat_name size");
|
||||
|
||||
static const char *log_level_name[] = {
|
||||
"EMERG",
|
||||
"ALERT",
|
||||
"CRIT",
|
||||
|
@ -41,6 +44,9 @@ static const char *log_level_name[LOGL_COUNT] = {
|
|||
"IO",
|
||||
};
|
||||
|
||||
_Static_assert(ARRAY_SIZE(log_level_name) == LOGL_COUNT, "log_level_name size");
|
||||
|
||||
/* All error responses MUST begin with '<' */
|
||||
const char *log_get_cat_name(enum log_category_t cat)
|
||||
{
|
||||
const char *name;
|
||||
|
|
Loading…
Reference in a new issue