[Linux-kernel-mentees] [RFC PATCH] checkpatch: add shebang check to EXECUTE_PERMISSIONS

Lukas Bulwahn lukas.bulwahn at gmail.com
Sun Oct 11 18:35:42 UTC 2020


On Sun, Oct 11, 2020 at 8:32 PM Ujjwal Kumar <ujjwalkumar0501 at gmail.com> wrote:
>
> On 11/10/20 11:49 pm, Lukas Bulwahn wrote:
> >
> >
> > On Sun, 11 Oct 2020, Ujjwal Kumar wrote:
> >
> >> On 11/10/20 11:20 pm, Lukas Bulwahn wrote:
> >>>
> >>>
> >>> On Sun, 11 Oct 2020, Ujjwal Kumar wrote:
> >>>
> >>>> checkpatch script checks for invalid EXECUTE_PERMISSIONS on source
> >>>> files. The script leverages filename extensions and its path in
> >>>> the repository to decide whether to allow execute permissions on
> >>>> the file or not.
> >>>>
> >>>> Based on current check conditions, a perl script file without
> >>>> '.pl' extension in its filename and not belonging to 'scripts/'
> >>>> directory is reported as ERROR which is a false-positive.
> >>>>
> >>>> The script can correctly handle patches with mode changes and
> >>>> shebang line if shebang is taken into account. So, along with
> >>>> the current check conditions, adding the shebang check in the
> >>>> check conditions can improve the reports of the script.
> >>>>
> >>>
> >>> I think one of the core design decisions of checkpatch.pl is:
> >>>
> >>> checkpatch.pl can run on a patch, even if the patch does not apply to the
> >>> current repository version that is checked out.
> >>
> >> From our past conversation I remember about this particular point.
> >>
> >>>
> >>> It solely uses the information in the patch, and does not try to guess how
> >>> it could be applied etc.
> >>
> >> I am fetching the 'shebang' from the patch itself (therefore I do not
> >> understand how does the proposed change violate that design decision?).
> >>
> >
> > Okay, maybe I misread the patch; so, where those the first line come from?
> > What if that first line is not part of the patch?
>
> In that case there might be a false-positive. But I tried to handle such cases
> where the first line is in the patch itself.
>
> Okay, so there are total of 4 cases with file mode change:
> 1. mode change + create + modify
> 2. mode change + create
> 3. mode change + modify
> 4. mode change
>
> the patch will handle all cases of type 1 and some cases of type 3.
> Other cases won't be handled because they cannot be handled without
> breaking the core design decision.
>
> I do have references to say that the cases 2 and 4 are
>
> Which I thought is an improvement over current logic used for the check.
>

Sounds good, maybe you can explain that in the commit message and then
send that to the mailing list and Joe Perches.

Lukas


More information about the Linux-kernel-mentees mailing list