[PATCH 8/9] Add KASan support
Sascha Hauer
s.hauer at pengutronix.de
Mon Sep 21 02:24:37 EDT 2020
On Fri, Sep 18, 2020 at 12:15:53PM +0200, Ahmad Fatoum wrote:
>
>
> On 9/18/20 10:45 AM, Sascha Hauer wrote:
> > - return block_prepare_used(control, block, adjust);
> > + void *ret;
> > +
> > + ret = block_prepare_used(control, block, adjust, size);
> > + if (!ret)
> > + return ret;
> > +
> > + return ret;
>
> Debugging leftover? You can just return the function result directly.
Not exactly debugging leftover. I had the poisoning code here in an
earlier version and haven't rolled it back completely when moving the
code elsewhere. Fixed.
> > +static void print_error_description(struct kasan_access_info *info)
> > +{
> > + pr_err("BUG: KASAN: %s in %pS\n",
> > + get_bug_type(info), (void *)info->ip);
> > + pr_err("%s of size %zu at addr %px\n",
> > + info->is_write ? "Write" : "Read", info->access_size,
> > + info->access_addr);
>
> I just removed the pr_err in ubsan with this rationale:
>
> common: ubsan: replace pr_err with printf
>
> The pr_print family of functions also writes to the barebox
> log buffer, which we don't require for printing UBSan errors,
> which is a debugging aid. This also improves UBSan coverage as now
> undefined behavior within pr_print may be reported as well.
>
> Should we use plain printf here as well? Less code to execute
> = less chance to run into a recursion.
I am not sure. I did a quick
foo = strdup("Hallo");
free(foo);
pr_err(foo);
At least this worked as expected. I can't really tell at the moment if
this covers all cases. I think there will be surprises when we call
pr_err inside a pr_err which faults. On the other hand I would really
expect such a message to be in the log.
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list