lkml.org 
[lkml]   [2023]   [Nov]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/2] kconfig: default to zero if int/hex symbol lacks default property
    Date
    When a default property is missing in an int or hex symbol, it defaults
    to an empty string, which is not a valid symbol value.

    It results in a incorrect .config, and can also lead to an infinite
    loop in scripting.

    Use "0" for int and "0x0" for hex as a default value.

    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    ---

    scripts/kconfig/symbol.c | 17 ++++++++++++-----
    1 file changed, 12 insertions(+), 5 deletions(-)

    diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
    index f7075d148ac7..a5a4f9153eb7 100644
    --- a/scripts/kconfig/symbol.c
    +++ b/scripts/kconfig/symbol.c
    @@ -338,7 +338,11 @@ void sym_calc_value(struct symbol *sym)

    switch (sym->type) {
    case S_INT:
    + newval.val = "0";
    + break;
    case S_HEX:
    + newval.val = "0x0";
    + break;
    case S_STRING:
    newval.val = "";
    break;
    @@ -746,14 +750,17 @@ const char *sym_get_string_default(struct symbol *sym)
    case yes: return "y";
    }
    case S_INT:
    + if (!str[0])
    + str = "0";
    + break;
    case S_HEX:
    - return str;
    - case S_STRING:
    - return str;
    - case S_UNKNOWN:
    + if (!str[0])
    + str = "0x0";
    + break;
    + default:
    break;
    }
    - return "";
    + return str;
    }

    const char *sym_get_string_value(struct symbol *sym)
    --
    2.40.1
    \
     
     \ /
      Last update: 2023-11-25 17:37    [W:6.510 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site