lkml.org 
[lkml]   [2010]   [Aug]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH] checkpatch: check for incorrect permissions
    On Thu, Aug 12, 2010 at 23:02:22 +0200, Andrew Morton wrote:
    > On Thu, 12 Aug 2010 10:45:45 +0530
    > Rabin Vincent <rabin.vincent@stericsson.com> wrote:
    > > # extract the filename as it passes
    > > - if ($line=~/^\+\+\+\s+(\S+)/) {
    > > + if ($line=~/^\+\+\+\s+(\S+)/ || $line=~/^diff\s.*?(\S+)$/) {
    >
    > Breakage. This causes the false warning:
    >
    > WARNING: patch prefix 'drivers' exists, appears to be a -p0 patch

    I've fixed this by matching for the filename in the diff line only when
    it's "diff --git". Also prevented a double-print of the "do not modify
    file in include/asm" error.

    From b854ea24f1bd5391a63d8d4e2aa63e1c10870816 Mon Sep 17 00:00:00 2001
    From: Rabin Vincent <rabin.vincent@stericsson.com>
    Date: Wed, 11 Aug 2010 14:45:45 +0530
    Subject: [PATCHv2] checkpatch: check for incorrect permissions

    Throw an error when a source file has been given execute permissions
    using the mode change line present in git diffs. Also alow the filename
    matching to use the "diff" line in addition to the "+++" line, since the
    mode change lines appear before any "+++" lines.

    Cc: Andy Whitcroft <apw@canonical.com>
    Acked-by: Linus Walleij <linus.walleij@stericsson.com>
    Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
    ---
    scripts/checkpatch.pl | 14 +++++++++++++-
    1 files changed, 13 insertions(+), 1 deletions(-)

    diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
    index 2039acd..a6858be 100755
    --- a/scripts/checkpatch.pl
    +++ b/scripts/checkpatch.pl
    @@ -1308,7 +1308,7 @@ sub process {
    $here = "#$realline: " if ($file);

    # extract the filename as it passes
    - if ($line=~/^\+\+\+\s+(\S+)/) {
    + if ($line =~ /^\+\+\+\s+(\S+)/ || $line =~ /^diff --git.*?(\S+)$/) {
    $realfile = $1;
    $realfile =~ s@^([^/]*)/@@;

    @@ -1318,6 +1318,10 @@ sub process {
    WARN("patch prefix '$p1_prefix' exists, appears to be a -p0 patch\n");
    }

    + # filename based errors will anyway get printed when we
    + # get to the context lines
    + next if ($line =~ /^diff/);
    +
    if ($realfile =~ m@^include/asm/@) {
    ERROR("do not modify files in include/asm, change architecture specific files in include/asm-<architecture>\n" . "$here$rawline\n");
    }
    @@ -1332,6 +1336,14 @@ sub process {

    $cnt_lines++ if ($realcnt != 0);

    +# Check for incorrect file permissions
    + if ($line =~ /^new (file )?mode.*[7531]\d{0,2}$/) {
    + my $permhere = $here . "FILE: $realfile\n";
    + if ($realfile =~ /(Makefile|Kconfig|\.c|\.h|\.S|\.tmpl)$/) {
    + ERROR("do not set execute permissions for source files\n" . $permhere);
    + }
    + }
    +
    #check the patch for a signoff:
    if ($line =~ /^\s*signed-off-by:/i) {
    # This is a signoff, if ugly, so do not double report.
    --
    1.7.2.dirty


    \
     
     \ /
      Last update: 2010-08-13 06:57    [W:0.023 / U:59.168 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site