lkml.org 
[lkml]   [2021]   [Jul]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 62/64] netlink: Avoid false-positive memcpy() warning
    On Wed, Jul 28, 2021 at 01:24:01PM +0200, Rasmus Villemoes wrote:
    > On 28/07/2021 07.49, Greg Kroah-Hartman wrote:
    > > On Tue, Jul 27, 2021 at 01:58:53PM -0700, Kees Cook wrote:
    > >> In preparation for FORTIFY_SOURCE performing compile-time and run-time
    > >> field bounds checking for memcpy(), memmove(), and memset(), avoid
    > >> intentionally writing across neighboring fields.
    > >>
    > >> Add a flexible array member to mark the end of struct nlmsghdr, and
    > >> split the memcpy() to avoid false positive memcpy() warning:
    > >>
    > >> memcpy: detected field-spanning write (size 32) of single field (size 16)
    > >>
    > >> Signed-off-by: Kees Cook <keescook@chromium.org>
    > >> ---
    > >> include/uapi/linux/netlink.h | 1 +
    > >> net/netlink/af_netlink.c | 4 +++-
    > >> 2 files changed, 4 insertions(+), 1 deletion(-)
    > >>
    > >> diff --git a/include/uapi/linux/netlink.h b/include/uapi/linux/netlink.h
    > >> index 4c0cde075c27..ddeaa748df5e 100644
    > >> --- a/include/uapi/linux/netlink.h
    > >> +++ b/include/uapi/linux/netlink.h
    > >> @@ -47,6 +47,7 @@ struct nlmsghdr {
    > >> __u16 nlmsg_flags; /* Additional flags */
    > >> __u32 nlmsg_seq; /* Sequence number */
    > >> __u32 nlmsg_pid; /* Sending process port ID */
    > >> + __u8 contents[];
    > >
    > > Is this ok to change a public, userspace visable, structure?
    >
    > At least it should keep using a nlmsg_ prefix for consistency and reduce
    > risk of collision with somebody having defined an object-like contents
    > macro. But there's no guarantees in any case, of course.

    Ah, good call. I've adjusted this and added a comment.

    Thanks!

    -Kees

    --
    Kees Cook

    \
     
     \ /
      Last update: 2021-07-30 03:40    [W:2.821 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site