Re: [PATCH 1/1] UBSAN: use uppercase K to format a kernel pointer

From: Nicolas Iooss
Date: Sat Jul 30 2016 - 04:26:59 EST


On 07/29/2016 09:53 PM, Joe Perches wrote:
> On Fri, 2016-07-29 at 13:10 +0200, Nicolas Iooss wrote:
>> handle_object_size_mismatch() used %pk to format a kernel pointer in
>> pr_err(). This seems to be a misspelling for %pK.
>
> Thanks

Thanks for your feedbacks. I agree %pK does not make much sense in the
context it is used. I will modify this patch to use %p instead.

>> diff --git a/lib/ubsan.c b/lib/ubsan.c
> []
>> @@ -308,7 +308,7 @@ static void handle_object_size_mismatch(struct
>> type_mismatch_data *data,
>> return;
>>
>> ubsan_prologue(&data->location, &flags);
>> - pr_err("%s address %pk with insufficient space\n",
>> + pr_err("%s address %pK with insufficient space\n",
>> type_check_kinds[data->type_check_kind],
>> (void *) ptr);
>> pr_err("for an object of type %s\n", data->type->type_name);
>
> Maybe change this to a single output line:
>
> pr_err("%s address %pK with insufficient space for an object of type %s\n",
> type_check_kinds[data->type_check_kind], (void *)ptr,
> data->type->type_name);

As both handle_missaligned_access() and handle_object_size_mismatch()
use two pr_err() calls to display their error messages, it seems the
split has been made on purpose (maybe to avoid logging long lines).
I won't merge the calls in my patch as this appears to be more an
ergonomic subject for people really using this code.

-- Nicolas