Can KASAN be used with loadable modules?

John Ousterhout john.ousterhout at gmail.com
Wed Oct 12 00:44:53 EDT 2022


Responding to my own message:

It turns out that I had somehow botched the installation of the
KASAN-ified kernel, so that the module compilation was using old
information that didn't include KASAN. Once I got the KASAN-ified
kernel properly installed, my module compiled cleanly with KASAN and
KASAN did indeed detect memory problems.

Sorry for the false alarm.


On Tue, Oct 11, 2022 at 9:43 PM John Ousterhout <ouster at cs.stanford.edu> wrote:
>
> Responding to my own message:
>
> It turns out that I had somehow botched the installation of the
> KASAN-ified kernel, so that the module compilation was using old
> information that didn't include KASAN. Once I got the KASAN-ified
> kernel properly installed, my module compiled cleanly with KASAN and
> KASAN did indeed detect memory problems.
>
> Sorry for the false alarm.
>
>
> On Tue, Oct 11, 2022 at 2:47 PM John Ousterhout
> <john.ousterhout at gmail.com> wrote:
> >
> > I'm trying to use the address sanitizer (KASAN) with a loadable module, but so far haven't been able to make it work. I compiled a kernel with KASAN and tested to see that it detects errors properly with kernel files, but when I compile a loadable module with that kernel, the module is not configured for KASAN (e.g. missing CFLAGS switches). Furthermore, I found that the lib/include/config/auto.conf file in the /lib/modules/xxx directory is different from the one in the kernel build directory. I tried copying the auto.conf file from the kernel directory to lib/modules/xxx, but then the module build fails during the link step with missing symbols such as __asan_handle_no_return.
> >
> > Is KASAN known to work with modules? If so, is any additional configuration needed for a module to use KASAN?
> >
> > Thanks in advance for any help you can provide.
> >
> > -John-



More information about the Kernelnewbies mailing list