lkml.org 
[lkml]   [2019]   [Jun]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 05/60] samples, bpf: suppress compiler warning
    Date
    From: Matteo Croce <mcroce@redhat.com>

    [ Upstream commit a195cefff49f60054998333e81ee95170ce8bf92 ]

    GCC 9 fails to calculate the size of local constant strings and produces a
    false positive:

    samples/bpf/task_fd_query_user.c: In function ‘test_debug_fs_uprobe’:
    samples/bpf/task_fd_query_user.c:242:67: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 215 [-Wformat-truncation=]
    242 | snprintf(buf, sizeof(buf), "/sys/kernel/debug/tracing/events/%ss/%s/id",
    | ^~
    243 | event_type, event_alias);
    | ~~~~~~~~~~~
    samples/bpf/task_fd_query_user.c:242:2: note: ‘snprintf’ output between 45 and 300 bytes into a destination of size 256
    242 | snprintf(buf, sizeof(buf), "/sys/kernel/debug/tracing/events/%ss/%s/id",
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    243 | event_type, event_alias);
    | ~~~~~~~~~~~~~~~~~~~~~~~~

    Workaround this by lowering the buffer size to a reasonable value.
    Related GCC Bugzilla: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83431

    Signed-off-by: Matteo Croce <mcroce@redhat.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    samples/bpf/task_fd_query_user.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/samples/bpf/task_fd_query_user.c b/samples/bpf/task_fd_query_user.c
    index 8381d792f138..06957f0fbe83 100644
    --- a/samples/bpf/task_fd_query_user.c
    +++ b/samples/bpf/task_fd_query_user.c
    @@ -216,7 +216,7 @@ static int test_debug_fs_uprobe(char *binary_path, long offset, bool is_return)
    {
    const char *event_type = "uprobe";
    struct perf_event_attr attr = {};
    - char buf[256], event_alias[256];
    + char buf[256], event_alias[sizeof("test_1234567890")];
    __u64 probe_offset, probe_addr;
    __u32 len, prog_id, fd_type;
    int err, res, kfd, efd;
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-06-27 02:50    [W:4.100 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site