Re: [PATCH] ACPI: APEI: ERST: Fix missing error code in erst_init()

From: Huang, Ying
Date: Wed Jun 02 2021 - 02:13:50 EST


Kees Cook <keescook@xxxxxxxxxxxx> writes:

> On Tue, Jun 01, 2021 at 07:05:53PM +0800, Jiapeng Chong wrote:
>> The error code is missing in this code scenario, add the error code
>> '-EINVAL' to the return value 'rc'.
>>
>> Eliminate the follow smatch warning:
>>
>> drivers/acpi/apei/erst.c:1114 erst_init() warn: missing error code 'rc'.
>>
>> Reported-by: Abaci Robot <abaci@xxxxxxxxxxxxxxxxx>
>> Signed-off-by: Jiapeng Chong <jiapeng.chong@xxxxxxxxxxxxxxxxx>
>
> Is this a bug? I can't tell if this is meant to be a "silent" failure,
> like with acpi_disabled, erst_disabled, etc.
>
> If it _is_ a bug, then please include:
>
> Fixes: a08f82d08053 ("ACPI, APEI, Error Record Serialization Table (ERST) support")
>
> -Kees
>
>> ---
>> drivers/acpi/apei/erst.c | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/acpi/apei/erst.c b/drivers/acpi/apei/erst.c
>> index 242f3c2..492d499 100644
>> --- a/drivers/acpi/apei/erst.c
>> +++ b/drivers/acpi/apei/erst.c
>> @@ -1110,9 +1110,10 @@ static int __init erst_init(void)
>>
>> status = acpi_get_table(ACPI_SIG_ERST, 0,
>> (struct acpi_table_header **)&erst_tab);
>> - if (status == AE_NOT_FOUND)
>> + if (status == AE_NOT_FOUND) {
>> + rc = -EINVAL;

I don't think this is necessary. It isn't an error not to have ERST
table in a machine.

Best Regards,
Huang, Ying

>> goto err;
>> - else if (ACPI_FAILURE(status)) {
>> + } else if (ACPI_FAILURE(status)) {
>> const char *msg = acpi_format_exception(status);
>> pr_err("Failed to get table, %s\n", msg);
>> rc = -EINVAL;
>> --
>> 1.8.3.1
>>