Re: Infinite loop in checkpatch.pl

From: Alexander Potapenko
Date: Fri Mar 03 2023 - 15:54:34 EST


On Fri, Mar 3, 2023 at 5:53 PM Joe Perches <joe@xxxxxxxxxxx> wrote:
>
> On Fri, 2023-03-03 at 15:28 +0100, Alexander Potapenko wrote:
> > Hi folks,
> >
> > I've noticed that checkpatch.pl chokes on the following file (also attached):
> >
> > ==================================
> > $ cat test-checkpatch.txt
> > diff --git a/mm/kmsan/kmsan_test.c b/mm/kmsan/kmsan_test.c
> > @@ -504,6 +504,25 @@ static void
> > test_memcpy_aligned_to_unaligned2(struct kunit *test)
> > + EXPECTATION_NO_REPORT(expect); \
> > + volatile uint##size##_t uninit; \
>
> checkpatch isn't a syntax complete c parser. Don't expect to be.

That's understandable, and I sure don't. But as a user I expect it to
not loop infinitely, and I think that's also reasonable.
The example I gave is not a randomly generated code snippet, but an
excerpt from a valid patch that I sent earlier today:
https://lore.kernel.org/lkml/20230303141433.3422671-4-glider@xxxxxxxxxx/,
which checkpatch cannot process.


--
Alexander Potapenko
Software Engineer

Google Germany GmbH
Erika-Mann-Straße, 33
80636 München

Geschäftsführer: Paul Manicle, Liana Sebastian
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg