Re: [patch] edac: sb_edac: add sanity check to silence static checker

From: Mauro Carvalho Chehab
Date: Tue Nov 01 2011 - 08:53:27 EST


Em 01-11-2011 10:32, walter harms escreveu:
>
>
> Am 01.11.2011 07:28, schrieb Dan Carpenter:
>> I assume the the check on if (limit <= prv) prevents n_tads from
>> actually reaching MAX_TAD. The problem with that is that it relies
>> on the hardware returning the right value and Smatch complains that
>> if it doesn't we could have a buffer overflow.
>>
>> Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
>> ---
>> Feel free to ignore this patch if you want. I don't have very stong
>> feelings about this either way.
>>
>> diff --git a/drivers/edac/sb_edac.c b/drivers/edac/sb_edac.c
>> index 7a402bf..ebf386c 100644
>> --- a/drivers/edac/sb_edac.c
>> +++ b/drivers/edac/sb_edac.c
>> @@ -970,6 +970,12 @@ static int get_memory_error_data(struct mem_ctl_info *mci,
>> break;
>> prv = limit;
>> }
>> + if (n_tads == MAX_TAD) {
>> + sprintf(msg, "Could not discover the memory channel");
>
> why the sprintf() ? can you not simply:
> edac_mc_handle_ce_no_info(mci,"Could not discover the memory channel");

Yes, please us the edac-specific call. I'm working on some patches that will
provide an additional functionality to those edac report calls. So, using
sprintf() won't do the right thing after applying those patches (likely for
Kernel v3.3).

>
> re,
> wh
>> + edac_mc_handle_ce_no_info(mci, msg);
>> + return -EINVAL;
>> + }
>> +
>> ch_way = TAD_CH(reg) + 1;
>> sck_way = TAD_SOCK(reg) + 1;
>> /*

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/