]> git.sur5r.net Git - u-boot/blobdiff - common/log.c
fit: Verify all configuration signatures
[u-boot] / common / log.c
index 1b1b98e5de63cb090a5f44dd2cd7b7c5f0ec4242..59869cd29dabba5375e5897f96a0f46a53f29ebb 100644 (file)
@@ -1,10 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Logging support
  *
  * Copyright (c) 2017 Google, Inc
  * Written by Simon Glass <sjg@chromium.org>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -21,6 +20,7 @@ static const char *log_cat_name[LOGC_COUNT - LOGC_NONE] = {
        "core",
        "driver-model",
        "device-tree",
+       "efi",
 };
 
 static const char *log_level_name[LOGL_COUNT] = {
@@ -38,12 +38,16 @@ static const char *log_level_name[LOGL_COUNT] = {
 
 const char *log_get_cat_name(enum log_category_t cat)
 {
-       if (cat > LOGC_COUNT)
-               return "invalid";
+       const char *name;
+
+       if (cat < 0 || cat >= LOGC_COUNT)
+               return "<invalid>";
        if (cat >= LOGC_NONE)
                return log_cat_name[cat - LOGC_NONE];
 
-       return uclass_get_name((enum uclass_id)cat);
+       name = uclass_get_name((enum uclass_id)cat);
+
+       return name ? name : "<missing>";
 }
 
 enum log_category_t log_get_cat_by_name(const char *name)
@@ -223,6 +227,7 @@ int log_add_filter(const char *drv_name, enum log_category_t cat_list[],
 {
        struct log_filter *filt;
        struct log_device *ldev;
+       int ret;
        int i;
 
        ldev = log_device_find_by_name(drv_name);
@@ -235,8 +240,10 @@ int log_add_filter(const char *drv_name, enum log_category_t cat_list[],
        if (cat_list) {
                filt->flags |= LOGFF_HAS_CAT;
                for (i = 0; ; i++) {
-                       if (i == ARRAY_SIZE(filt->cat_list))
-                               return -ENOSPC;
+                       if (i == ARRAY_SIZE(filt->cat_list)) {
+                               ret = -ENOSPC;
+                               goto err;
+                       }
                        filt->cat_list[i] = cat_list[i];
                        if (cat_list[i] == LOGC_END)
                                break;
@@ -245,17 +252,19 @@ int log_add_filter(const char *drv_name, enum log_category_t cat_list[],
        filt->max_level = max_level;
        if (file_list) {
                filt->file_list = strdup(file_list);
-               if (!filt->file_list)
-                       goto nomem;
+               if (!filt->file_list) {
+                       ret = ENOMEM;
+                       goto err;
+               }
        }
        filt->filter_num = ldev->next_filter_num++;
        list_add_tail(&filt->sibling_node, &ldev->filter_head);
 
        return filt->filter_num;
 
-nomem:
+err:
        free(filt);
-       return -ENOMEM;
+       return ret;
 }
 
 int log_remove_filter(const char *drv_name, int filter_num)