lkml.org 
[lkml]   [2018]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v5 2/4] kernel hacking: new config NO_AUTO_INLINE to disable compiler auto-inline optimizations
    On Thu, Jun 07, 2018 at 05:12:51AM -0500, Alex Elder wrote:
    > On 06/07/2018 04:19 AM, Viresh Kumar wrote:
    > > On 07-06-18, 11:18, Johan Hovold wrote:
    > >> If you want to work around the warning and think you can do it in some
    > >> non-contrived way, then go for it.
    > >>
    > >> Clearing the request buffer, checking for termination using strnlen, and
    > >> then using memcpy might not be too bad.
    > >>
    > >> But after all, it is a false positive, so leaving things as they stand
    > >> is fine too.
    > >
    > > Leave it then :)
    > >
    >
    > It's interesting that the warning isn't reported for this in
    > fw_mgmt_interface_fw_version_operation(). The difference there is
    > that you actually put a zero byte at that last position before
    > returning. I'm mildly impressed if gcc is distinguishing that.

    Found a redhat blog post claiming it does check for some cases like
    that:

    https://developers.redhat.com/blog/2018/05/24/detecting-string-truncation-with-gcc-8/

    > You *are* returning the fw_info->firmware_tag array newly filled
    > with a non-null-terminated string in one of the two cases that
    > get warnings in "fw-management.c".

    No, there's no warning for that one (line 250), and there fw_info is
    used as the source, not the destination, so no unterminated string is
    returned there either.

    > But the other one is only
    > updating a buffer in a local/automatic variable.

    All three cases, except the one that is explicitly terminated.

    > Weird. I wish there were a non-clumsy way of marking false positives
    > like this as A-OK.

    The gcc docs mentions an attribute for that but it seems a bit overkill
    here.

    Thanks,
    Johan

    \
     
     \ /
      Last update: 2018-06-07 12:28    [W:4.585 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site