lkml.org 
[lkml]   [2018]   [Dec]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 63/69] unifdef: use memcpy instead of strncpy
    Date
    From: Linus Torvalds <torvalds@linux-foundation.org>

    [ Upstream commit 38c7b224ce22c25fed04007839edf974bd13439d ]

    New versions of gcc reasonably warn about the odd pattern of

    strncpy(p, q, strlen(q));

    which really doesn't make sense: the strncpy() ends up being just a slow
    and odd way to write memcpy() in this case.

    There was a comment about _why_ the code used strncpy - to avoid the
    terminating NUL byte, but memcpy does the same and avoids the warning.

    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    scripts/unifdef.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/scripts/unifdef.c b/scripts/unifdef.c
    index 7493c0ee51cc..db00e3e30a59 100644
    --- a/scripts/unifdef.c
    +++ b/scripts/unifdef.c
    @@ -395,7 +395,7 @@ usage(void)
    * When we have processed a group that starts off with a known-false
    * #if/#elif sequence (which has therefore been deleted) followed by a
    * #elif that we don't understand and therefore must keep, we edit the
    - * latter into a #if to keep the nesting correct. We use strncpy() to
    + * latter into a #if to keep the nesting correct. We use memcpy() to
    * overwrite the 4 byte token "elif" with "if " without a '\0' byte.
    *
    * When we find a true #elif in a group, the following block will
    @@ -450,7 +450,7 @@ static void Idrop (void) { Fdrop(); ignoreon(); }
    static void Itrue (void) { Ftrue(); ignoreon(); }
    static void Ifalse(void) { Ffalse(); ignoreon(); }
    /* modify this line */
    -static void Mpass (void) { strncpy(keyword, "if ", 4); Pelif(); }
    +static void Mpass (void) { memcpy(keyword, "if ", 4); Pelif(); }
    static void Mtrue (void) { keywordedit("else"); state(IS_TRUE_MIDDLE); }
    static void Melif (void) { keywordedit("endif"); state(IS_FALSE_TRAILER); }
    static void Melse (void) { keywordedit("endif"); state(IS_FALSE_ELSE); }
    --
    2.17.1
    \
     
     \ /
      Last update: 2018-12-05 10:47    [W:4.092 / U:0.520 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site