From patchwork Thu Aug 15 14:32:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Monnet X-Patchwork-Id: 1147629 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=netronome.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="onUTk2A4"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 468TSR5Gt1z9sPJ for ; Fri, 16 Aug 2019 00:32:39 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732938AbfHOOce (ORCPT ); Thu, 15 Aug 2019 10:32:34 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:35341 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731220AbfHOOcd (ORCPT ); Thu, 15 Aug 2019 10:32:33 -0400 Received: by mail-wr1-f68.google.com with SMTP id k2so2421690wrq.2 for ; Thu, 15 Aug 2019 07:32:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=CMA3sRg7D/yxSYutIiGR9Ywo5TwiBUayBKOGHCZMAQQ=; b=onUTk2A4W/SWt+WguIOVirYQ2odQDVjaZNL81KkBk8ukGK6ts8RDFnyOpEGCxZJLji HCgBUJp3FQL2nSOMQTNkfs+rPZP7fHGdsy/MCpH8or4ZaqLgaKKTybCQn4jgF+blB1Gg EmWCXyxx2rIbdqfVvmFfJyuxfN8dpzrl0q0NNcFYmrm7DmnO7d/kGg/CpxDb1HZZ2sPW +ZCAboa9xzR6NqjszMd2GhD8k/qQ+M6PAotAwxGjEkoImkfThfE23XJj8m/cVJjWZ/Nm z7og7WNyqdsLTMjSm2qOPx4fvOa9edM7GAw41fajeRaeoCvW2Wtgg01fbfsCywJmSx10 Y05Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=CMA3sRg7D/yxSYutIiGR9Ywo5TwiBUayBKOGHCZMAQQ=; b=LAVMdixXpeT+1O0Gp0Wq9ffyD57d5fnNuftFNGu5oMj8rymKzq9brrAb6nwNvnGPgk UMNoUbHEu1lbFiDjGcvzCUmKd7un0OJSSqMs90+VTvRywxMqqli8UfdVxBE/ls5LzDN7 ljUe0ITYR912OpnOAwwHlvlzkuu09tiwW0++JyUOxk7G0bWci0y2w90dBC20zPRiGqwA UBDFBGA02Kp/Mc48CYzYVbufj7whuJzQXYoGDh+C5VhgpoaMLN2dRqnMZLle3TBUDg4u 5r1zNedxV6x4N1wvaCyIv0SLZ4T1T+CZ4moYSCwN05WCGnwelbIIA76XDr/zSj3Np8+g tS+Q== X-Gm-Message-State: APjAAAWYCifZBj3qr+BIilWR0FS2LhYhwpAluKdPeoa7NpnwHPCR7FOC RCUjKe1li2/GN8UagT4I6Qm57g== X-Google-Smtp-Source: APXvYqyxyRU7c5HWyYflegsbfoQS2Arr22U5UvgLTffx1xxpBYUJRRJxMR94yMAz9wKFAG5nDp7bcA== X-Received: by 2002:a05:6000:128d:: with SMTP id f13mr5935903wrx.241.1565879551546; Thu, 15 Aug 2019 07:32:31 -0700 (PDT) Received: from cbtest32.netronome.com ([217.38.71.146]) by smtp.gmail.com with ESMTPSA id a19sm8857463wra.2.2019.08.15.07.32.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Aug 2019 07:32:30 -0700 (PDT) From: Quentin Monnet To: Alexei Starovoitov , Daniel Borkmann Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, oss-drivers@netronome.com, Quentin Monnet Subject: [PATCH bpf 1/6] tools: bpftool: fix arguments for p_err() in do_event_pipe() Date: Thu, 15 Aug 2019 15:32:15 +0100 Message-Id: <20190815143220.4199-2-quentin.monnet@netronome.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190815143220.4199-1-quentin.monnet@netronome.com> References: <20190815143220.4199-1-quentin.monnet@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The last argument passed to some calls to the p_err() functions is not correct, it should be "*argv" instead of "**argv". This may lead to a segmentation fault error if CPU IDs or indices from the command line cannot be parsed correctly. Let's fix this. Fixes: f412eed9dfde ("tools: bpftool: add simple perf event output reader") Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski --- tools/bpf/bpftool/map_perf_ring.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/bpf/bpftool/map_perf_ring.c b/tools/bpf/bpftool/map_perf_ring.c index 3f108ab17797..4c5531d1a450 100644 --- a/tools/bpf/bpftool/map_perf_ring.c +++ b/tools/bpf/bpftool/map_perf_ring.c @@ -157,7 +157,7 @@ int do_event_pipe(int argc, char **argv) NEXT_ARG(); ctx.cpu = strtoul(*argv, &endptr, 0); if (*endptr) { - p_err("can't parse %s as CPU ID", **argv); + p_err("can't parse %s as CPU ID", *argv); goto err_close_map; } @@ -168,7 +168,7 @@ int do_event_pipe(int argc, char **argv) NEXT_ARG(); ctx.idx = strtoul(*argv, &endptr, 0); if (*endptr) { - p_err("can't parse %s as index", **argv); + p_err("can't parse %s as index", *argv); goto err_close_map; } From patchwork Thu Aug 15 14:32:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Monnet X-Patchwork-Id: 1147631 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=netronome.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="gg/y4dqI"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 468TSS4t4gz9sPK for ; Fri, 16 Aug 2019 00:32:40 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732947AbfHOOcf (ORCPT ); Thu, 15 Aug 2019 10:32:35 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:51006 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732807AbfHOOce (ORCPT ); Thu, 15 Aug 2019 10:32:34 -0400 Received: by mail-wm1-f65.google.com with SMTP id v15so1463073wml.0 for ; Thu, 15 Aug 2019 07:32:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GhCitZIE1rm8aD0lfIgbmHAyTkoG5GD5Cm1VynvrMAc=; b=gg/y4dqIYmFdyInphTX8Wt+EQGNKRRYTuP/SmzQe9iy6izjuTILacgzG2kklO2tmOu 0Ffa2e0pTvph0ci0exTMriKMnlKiXSYpWR0+DtTO+5jJPGCqBIsVJAEvtzyx4gV7zp2x V8Iad5LDayftlcivVS/AMT4WO+8YbacgUJ+xnhE2/M9nrYMmxrMWBJQga2CVWmklxmUF FTDQEZljxwB0K5vdvWiN/E0hCiKqCTTu7+XLBNJbGb5Hv5bvhNfwyD81U8nIu/clMAd8 0loOQMjFaFwWRbipRjuYZzEFi5B1LdF76Yhriag/LPmQMXcK+GA/R8C4m4ntuRLoVjIj +23Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GhCitZIE1rm8aD0lfIgbmHAyTkoG5GD5Cm1VynvrMAc=; b=Eu4ejz9bZHECK54e4Ybhq2hYlzb+D919SVCv+NFKjgsycjOQCD8zvt76XaWS2fNS89 iyxzUUNgpsZdV6EYsyxjppxVGyyGYZIxBTQzScYja+OnPNfKiVyJAi1snhUiXetn1Q8P l69hbM4VhSDKoATeTjRUH1b6R9KfPLG5PlrRSXuqvSjiO9bEo6M3cZe8LKsw7BIZZm73 2EwORP3qoy+IpMUY1aIICQV/LLxA7yvlYT/78zTvRC4Q6ud9d4rm+DVlXTiTIeQeZ1nY EXjNHn/o8+3+G87rGkjAdoz9/Jf/iVB7w9VHd8rA6H7zN4oo3jIcsdlSNSJXQ1P0YbX7 eZkw== X-Gm-Message-State: APjAAAVdgaRcqa/75H0i9fjt6sALz62a+iMOHYro2jAsvM4G1mOUhMlT YA8Un8RW89nQBInWREHgJ6m84g== X-Google-Smtp-Source: APXvYqwu8EjSUkIT4UxX6coE1H5WsFoQ4nq4Qgbh6FF0MIKH4BTnCJT3IFRQeqwHwb+Rt0xVn3zKKQ== X-Received: by 2002:a1c:c747:: with SMTP id x68mr3222847wmf.14.1565879552510; Thu, 15 Aug 2019 07:32:32 -0700 (PDT) Received: from cbtest32.netronome.com ([217.38.71.146]) by smtp.gmail.com with ESMTPSA id a19sm8857463wra.2.2019.08.15.07.32.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Aug 2019 07:32:31 -0700 (PDT) From: Quentin Monnet To: Alexei Starovoitov , Daniel Borkmann Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, oss-drivers@netronome.com, Quentin Monnet Subject: [PATCH bpf 2/6] tools: bpftool: fix format strings and arguments for jsonw_printf() Date: Thu, 15 Aug 2019 15:32:16 +0100 Message-Id: <20190815143220.4199-3-quentin.monnet@netronome.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190815143220.4199-1-quentin.monnet@netronome.com> References: <20190815143220.4199-1-quentin.monnet@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org There are some mismatches between format strings and arguments passed to jsonw_printf() in the BTF dumper for bpftool, which seems harmless but may result in warnings if the "__printf()" attribute is used correctly for jsonw_printf(). Let's fix relevant format strings and type cast. Fixes: b12d6ec09730 ("bpf: btf: add btf print functionality") Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski --- tools/bpf/bpftool/btf_dumper.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/bpf/bpftool/btf_dumper.c b/tools/bpf/bpftool/btf_dumper.c index 8cafb9b31467..d66131f69689 100644 --- a/tools/bpf/bpftool/btf_dumper.c +++ b/tools/bpf/bpftool/btf_dumper.c @@ -26,9 +26,9 @@ static void btf_dumper_ptr(const void *data, json_writer_t *jw, bool is_plain_text) { if (is_plain_text) - jsonw_printf(jw, "%p", *(unsigned long *)data); + jsonw_printf(jw, "%p", data); else - jsonw_printf(jw, "%u", *(unsigned long *)data); + jsonw_printf(jw, "%lu", *(unsigned long *)data); } static int btf_dumper_modifier(const struct btf_dumper *d, __u32 type_id, @@ -216,7 +216,7 @@ static int btf_dumper_int(const struct btf_type *t, __u8 bit_offset, switch (BTF_INT_ENCODING(*int_type)) { case 0: if (BTF_INT_BITS(*int_type) == 64) - jsonw_printf(jw, "%lu", *(__u64 *)data); + jsonw_printf(jw, "%llu", *(__u64 *)data); else if (BTF_INT_BITS(*int_type) == 32) jsonw_printf(jw, "%u", *(__u32 *)data); else if (BTF_INT_BITS(*int_type) == 16) @@ -229,7 +229,7 @@ static int btf_dumper_int(const struct btf_type *t, __u8 bit_offset, break; case BTF_INT_SIGNED: if (BTF_INT_BITS(*int_type) == 64) - jsonw_printf(jw, "%ld", *(long long *)data); + jsonw_printf(jw, "%lld", *(long long *)data); else if (BTF_INT_BITS(*int_type) == 32) jsonw_printf(jw, "%d", *(int *)data); else if (BTF_INT_BITS(*int_type) == 16) From patchwork Thu Aug 15 14:32:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Monnet X-Patchwork-Id: 1147627 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: incoming-bpf@patchwork.ozlabs.org Delivered-To: patchwork-incoming-bpf@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=bpf-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=netronome.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="14Lz+QG3"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 468TSP207Qz9sND for ; Fri, 16 Aug 2019 00:32:37 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732950AbfHOOcg (ORCPT ); Thu, 15 Aug 2019 10:32:36 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:36848 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731220AbfHOOcf (ORCPT ); Thu, 15 Aug 2019 10:32:35 -0400 Received: by mail-wr1-f67.google.com with SMTP id r3so2421980wrt.3 for ; Thu, 15 Aug 2019 07:32:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+M5QZmIoEDjFoyJBHLElsXh3utBUpsKEGE+Jc7c8+z4=; b=14Lz+QG3aKErrirXSdHf9sfwowcVMZ+QzmhdAcvspB14S7fqQ2tdA3bUAt/ynFNDND GvN9sUKqN6NflQl+U8npeZDjxRvxL9Rl6sDjF6kH/RFDkFVyAZv4IWiNHQhPAtRJS1+Y waaNF9x9XQ9vKNq/LPk1HzbNmwVETp+QOEmcwbmwnib5Ev6LI3t4bibUFBQDGpwb/7Hq QEP66Fg9yFHZsxw0HrxnGieMcD8RO2xZGVOPgm7rHupGY2EXfF34j3pf3kxXyjd1rV0P PWbCh4pFLitqbm/oi1HYV8aoFF8XxYjS0LPntrVkxl/UIYVaJYoiTjry5040rKbpic4w 9ogQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+M5QZmIoEDjFoyJBHLElsXh3utBUpsKEGE+Jc7c8+z4=; b=cu/0gSgaVpNg23eLovsujSg/uPV5jJagew6bbGNVzfiZRp7/Lf4LY4FF7webuMrNBr M2ojC/PLSfB9zuPnCLxI7r2hUbCNcn/2Z+zz+nxhf8xzOMNs2JuZ5ZjivCRT8zZ2ENHd NGCoblmxOAEdJeyxqrMhY6JD/O51LJ0LW8YZndAJ7M6AoTL4hmEQ9zavRT7CJvcxMDm9 1GGYgXi/T3TFuGC604Rua5NXQLZbh0xaXoxRRaXCIjQZjl2ZV9GDU49SMJPgZCy3Px1I f4OneFxau73tyFMEoyThy8I7Z83zMWl3FqQbpjCHbDtX606aqCWCmWyWmpb1e5gE1P6Y jMdg== X-Gm-Message-State: APjAAAUN9PMjsBWp3m9RVUJomzx9QWlaN7hgMp+PWSEqkjTUVdA5IU/H Wr/0naRye40oDi6MIOJSvCEyGA== X-Google-Smtp-Source: APXvYqxEiYETrrbQa3ic3kkobppYtfhZlBW+hw4D3+wsUpJUdI+0fj2L1q9agB3rNRCTY7aibCOjtQ== X-Received: by 2002:adf:f5c5:: with SMTP id k5mr6175339wrp.42.1565879553547; Thu, 15 Aug 2019 07:32:33 -0700 (PDT) Received: from cbtest32.netronome.com ([217.38.71.146]) by smtp.gmail.com with ESMTPSA id a19sm8857463wra.2.2019.08.15.07.32.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Aug 2019 07:32:32 -0700 (PDT) From: Quentin Monnet To: Alexei Starovoitov , Daniel Borkmann Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, oss-drivers@netronome.com, Quentin Monnet Subject: [PATCH bpf 3/6] tools: bpftool: fix argument for p_err() in BTF do_dump() Date: Thu, 15 Aug 2019 15:32:17 +0100 Message-Id: <20190815143220.4199-4-quentin.monnet@netronome.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190815143220.4199-1-quentin.monnet@netronome.com> References: <20190815143220.4199-1-quentin.monnet@netronome.com> Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org The last argument passed to one call to the p_err() function is not correct, it should be "*argv" instead of "**argv". This may lead to a segmentation fault error if BTF id cannot be parsed correctly. Let's fix this. Fixes: c93cc69004dt ("bpftool: add ability to dump BTF types") Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski --- tools/bpf/bpftool/btf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/bpf/bpftool/btf.c b/tools/bpf/bpftool/btf.c index 1b8ec91899e6..8805637f1a7e 100644 --- a/tools/bpf/bpftool/btf.c +++ b/tools/bpf/bpftool/btf.c @@ -449,7 +449,7 @@ static int do_dump(int argc, char **argv) btf_id = strtoul(*argv, &endptr, 0); if (*endptr) { - p_err("can't parse %s as ID", **argv); + p_err("can't parse %s as ID", *argv); return -1; } NEXT_ARG(); From patchwork Thu Aug 15 14:32:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Monnet X-Patchwork-Id: 1147630 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: incoming-bpf@patchwork.ozlabs.org Delivered-To: patchwork-incoming-bpf@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=bpf-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=netronome.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="TupD/Gh2"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 468TSR5Gr4z9sNm for ; Fri, 16 Aug 2019 00:32:39 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731220AbfHOOcg (ORCPT ); Thu, 15 Aug 2019 10:32:36 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:56012 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732944AbfHOOcg (ORCPT ); Thu, 15 Aug 2019 10:32:36 -0400 Received: by mail-wm1-f65.google.com with SMTP id f72so1453718wmf.5 for ; Thu, 15 Aug 2019 07:32:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=JPzzk5lRmjCdOAS6zNQJ1VhVCQa5IynB25ENpGskCeY=; b=TupD/Gh2d8qyh3RllnYSH0OpkdcfRETSxHt3xZHCA12yunZqr9yvxmWuGKZ9/rhCPq JCLcpZR/MuQYpfYkzTKFxT+/jFwTcxyXOs3nIMAsfleRIp7BlNHHLMbv4ZSkcLjmMtl2 uZbnrJ9QnGcY+BLcdoytpamUQ//0CfHxjSV2ROqGHeCcC7nRN8loHTACUdt6qDlgcYHf kCXCOKRNpFXKjkZnsXlPJzhZA89e78anKQXUZXnzzz3d8zWLvr+MR/146/8SD9/YWOVs aUGHugQgDvqZY4KHw36yGVVB+iheS1oysDfp+BH1bvc7UrDlo/fAVilRT9UTQtbLJ39q n58g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=JPzzk5lRmjCdOAS6zNQJ1VhVCQa5IynB25ENpGskCeY=; b=QIN1FuO1RbGtZvFs8NBuKw9raJjGtJ1JXw6QnMtaK8GubhGUivyYM+9zAv6XMTzqub +WO/vQJzkuBq1/EU3wY9yBs9w/Gi9gWrt937QqZZetGwi9oOOCJjkUqh3MpE6GflEC71 xIpKYiabAlub3FU17sgH9eur2Gn5dE6DTf8qIlYqVbgoOplN0JEkvUJJZt+qhDQ0LOFj 1Mjba78WAAK1PzjddR2YEs2LGT4BnqipAWohPefx6YheevmgMTsULdW5uMqQiFea0pki a6zr8qmKfQXeIXYWZvtidfnPvTvjfAH00KvAATxSdR+9fWM2WhXFr7BJYF2J8T8DKmtv NbPQ== X-Gm-Message-State: APjAAAVcIyIgyNpVPD5EW4cCyitf7HwcSgH/2a7bTxZvxk21TTAYryso HIH66MlBnEcRABLROWHsR0Sck8ba2SA= X-Google-Smtp-Source: APXvYqwI9FQz5QfncZdStumoW6LrAu7+/jwRFiHcqXzZLnZOeEWkUGaCqJBs73aFI71k6s+VlZpyUA== X-Received: by 2002:a05:600c:551:: with SMTP id k17mr3102790wmc.53.1565879554404; Thu, 15 Aug 2019 07:32:34 -0700 (PDT) Received: from cbtest32.netronome.com ([217.38.71.146]) by smtp.gmail.com with ESMTPSA id a19sm8857463wra.2.2019.08.15.07.32.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Aug 2019 07:32:33 -0700 (PDT) From: Quentin Monnet To: Alexei Starovoitov , Daniel Borkmann Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, oss-drivers@netronome.com, Quentin Monnet Subject: [PATCH bpf 4/6] tools: bpftool: fix format string for p_err() in query_flow_dissector() Date: Thu, 15 Aug 2019 15:32:18 +0100 Message-Id: <20190815143220.4199-5-quentin.monnet@netronome.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190815143220.4199-1-quentin.monnet@netronome.com> References: <20190815143220.4199-1-quentin.monnet@netronome.com> Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org The format string passed to one call to the p_err() function in query_flow_dissector() does not match the value that should be printed, resulting in some garbage integer being printed instead of strerror(errno) if /proc/self/ns/net cannot be open. Let's fix the format string. Fixes: 7f0c57fec80f ("bpftool: show flow_dissector attachment status") Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski --- tools/bpf/bpftool/net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/bpf/bpftool/net.c b/tools/bpf/bpftool/net.c index 67e99c56bc88..e3b770082a39 100644 --- a/tools/bpf/bpftool/net.c +++ b/tools/bpf/bpftool/net.c @@ -197,7 +197,7 @@ static int query_flow_dissector(struct bpf_attach_info *attach_info) fd = open("/proc/self/ns/net", O_RDONLY); if (fd < 0) { - p_err("can't open /proc/self/ns/net: %d", + p_err("can't open /proc/self/ns/net: %s", strerror(errno)); return -1; } From patchwork Thu Aug 15 14:32:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Monnet X-Patchwork-Id: 1147632 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: incoming-bpf@patchwork.ozlabs.org Delivered-To: patchwork-incoming-bpf@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=bpf-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=netronome.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="w00eD6zu"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 468TSS4hQQz9sP3 for ; Fri, 16 Aug 2019 00:32:40 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732955AbfHOOci (ORCPT ); Thu, 15 Aug 2019 10:32:38 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:35962 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732948AbfHOOcg (ORCPT ); Thu, 15 Aug 2019 10:32:36 -0400 Received: by mail-wm1-f67.google.com with SMTP id g67so1433742wme.1 for ; Thu, 15 Aug 2019 07:32:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=aDNxpHGNjzIhRdFUHhWdbz14YhYFMSlgXH+UzQL/n/8=; b=w00eD6zuYRGH1jIiTVJEf9lLjIVZnhC0QawhAC32fxEEopDqbM7+pSk/U1hD8EBSZY /yxX56laY8Y0nO3tLEghixZcIXpdS5dvO1Z3f/OD02kX0sMLzg7Hi5obV7/aO0OSASB2 74H0Jk8AAzzEU15yE5DzNS4DUzEcbQC4AWywvYV6r+mfcMBR3Sm1saJe4KsrF6Ax+i+A Lj36frIWgqgDwygDUu59dq/jgYRHPN0QxpLO8ED+hYdQUkbJyhGsyY2Y4MrbuXdAujnY 9dExVa93uVTvqdbIzppTifEVJvdkm1zjhojjoyUlouF+EHQt8HQS9/ay5FIS9jzp2UEz HSiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=aDNxpHGNjzIhRdFUHhWdbz14YhYFMSlgXH+UzQL/n/8=; b=TL6u8SigHdbPp0cN6ASMOcYIRYAWexVDGJdLUTvaCnoCgp/9DdFOYi2Nyusg/AhQsJ raiDP/fOo+tx1nvZyggghfwnymBiyqnPJNBn1TQ09NCECQzrToQ5dkqm1Mxb1FzhPaUw PLjM8VKqY6/I5/z3k+q8J2Trqexpmw6pNXKXPm8nMR1b8OQOF1LxcTTg/9BaiFdrx6R9 +olOVNx6JGhAS71oq9ptRRnI3t0tTYFunnSfIL/xhCl/h3PR/O2ZwCcz3PcDOOBR+1x6 Rm6mWnTaMN+5rVyjcZoSjUC3S7C12lGoxZsmTjTkBTATyHOmRnRq38KB6cQ2x8Xt7/LF wx4g== X-Gm-Message-State: APjAAAVVrd/lCan7zHNsxjVxMxLlDWhyWGVgIGUyi5H5sii090N/d03v hOLg2XDw8SHLBtzEpZjld0qoiilt1z0= X-Google-Smtp-Source: APXvYqxUUBg66ASuGRViLj9+Zj2B2ANuj8oLlQrkJxxEmO5ygbikhXVzd8iDj+qx4LVlLJbmdKlm2A== X-Received: by 2002:a1c:a686:: with SMTP id p128mr3228393wme.130.1565879555573; Thu, 15 Aug 2019 07:32:35 -0700 (PDT) Received: from cbtest32.netronome.com ([217.38.71.146]) by smtp.gmail.com with ESMTPSA id a19sm8857463wra.2.2019.08.15.07.32.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Aug 2019 07:32:34 -0700 (PDT) From: Quentin Monnet To: Alexei Starovoitov , Daniel Borkmann Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, oss-drivers@netronome.com, Quentin Monnet Subject: [PATCH bpf 5/6] tools: bpftool: fix format string for p_err() in detect_common_prefix() Date: Thu, 15 Aug 2019 15:32:19 +0100 Message-Id: <20190815143220.4199-6-quentin.monnet@netronome.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190815143220.4199-1-quentin.monnet@netronome.com> References: <20190815143220.4199-1-quentin.monnet@netronome.com> Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org There is one call to the p_err() function in detect_common_prefix() where the message to print is passed directly as the first argument, without using a format string. This is harmless, but may trigger warnings if the "__printf()" attribute is used correctly for the p_err() function. Let's fix it by using a "%s" format string. Fixes: ba95c7452439 ("tools: bpftool: add "prog run" subcommand to test-run programs") Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski --- tools/bpf/bpftool/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/bpf/bpftool/main.c b/tools/bpf/bpftool/main.c index e916ff25697f..93d008687020 100644 --- a/tools/bpf/bpftool/main.c +++ b/tools/bpf/bpftool/main.c @@ -139,7 +139,7 @@ int detect_common_prefix(const char *arg, ...) strncat(msg, "'", sizeof(msg) - strlen(msg) - 1); if (count >= 2) { - p_err(msg); + p_err("%s", msg); return -1; } From patchwork Thu Aug 15 14:32:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Monnet X-Patchwork-Id: 1147636 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: incoming-bpf@patchwork.ozlabs.org Delivered-To: patchwork-incoming-bpf@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=bpf-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=netronome.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="ZmpLee+M"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 468TSZ5g9fz9sNm for ; Fri, 16 Aug 2019 00:32:46 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732964AbfHOOcm (ORCPT ); Thu, 15 Aug 2019 10:32:42 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:39314 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732940AbfHOOck (ORCPT ); Thu, 15 Aug 2019 10:32:40 -0400 Received: by mail-wr1-f67.google.com with SMTP id t16so2407384wra.6 for ; Thu, 15 Aug 2019 07:32:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=klej20LM50rl+qegl25ThpIduG7ubdFrTIw/Elq2Oyk=; b=ZmpLee+MpsIvwrI81gSC97WwtSwmglFRgAnR53OEOPTIM7/tGVwNzCUqW0EpCz7zCl nSp7J9zX5N6QYUBVade+gQUtTr76yPVmJrkOP6fbrjC8jDz/wnckOKG7atAdCO2NhQZI F/wup5rR8QZZ8U32G6dILI4JyV5P1ATplET25i3PZMZhaw5wnKBhFRDvvAYF6PH7ETja 1jUkLhXCs/iQRYqLmxUShrskQZU8h1N360msgzQt9DP9U/grRFS5MrMYVD4JXbT1DtmM IpemRMWBOi61793/oigcAAWQgHnZQy/lz3BSm0Fa6oHt0Jymj5qU61aLQ+wMtcPLz8oC jMDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=klej20LM50rl+qegl25ThpIduG7ubdFrTIw/Elq2Oyk=; b=LpdaalAVg9LTb5ik1nv4WtinYYsmNvv28DwViIIdKq9lIZDYtlLFX6OtPHglUYK438 GYXg9GgJYK2NaYUTu8htUvlrmuWKq9GJ190SAc1A4cN0w6nvl7SnLr6jjazDgU0jbD+h xIqJFAw8+/xW7TUQEqiYxNlovrYyg73V1O6tL+KAbP7eHHbbJwXbBkra5jUSi29i5xVA YBt9ZOgScu1iuFmW4POGOcTY1/UFl7PXcD9tNScbIIUDph/2VPl2UABnGoc6djHdTYik ISKcvSPi5NAOfi7SX4z0Wh9dHRtHFuvlyB6oaxZIJzQ8Od0J7vI9DwrxWHQIR6CbnQkp KUlQ== X-Gm-Message-State: APjAAAUBi+iaBhzYzo+/ky60IxtpUdNZDXc4UMmz0Fkm/zU3rYcs+gLh S3UZ+vYv3UhU7BkoGPJ89vu/sg== X-Google-Smtp-Source: APXvYqxIBOQL+nrXAbciTgQQN+SrA6sh71SeVePn3YZ9iwT/G69fL834Z5AjxMuTvBATZtBtSF+u0g== X-Received: by 2002:adf:fdcc:: with SMTP id i12mr6065639wrs.88.1565879558327; Thu, 15 Aug 2019 07:32:38 -0700 (PDT) Received: from cbtest32.netronome.com ([217.38.71.146]) by smtp.gmail.com with ESMTPSA id a19sm8857463wra.2.2019.08.15.07.32.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Aug 2019 07:32:35 -0700 (PDT) From: Quentin Monnet To: Alexei Starovoitov , Daniel Borkmann Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, oss-drivers@netronome.com, Quentin Monnet Subject: [PATCH bpf 6/6] tools: bpftool: move "__printf()" attributes to header file Date: Thu, 15 Aug 2019 15:32:20 +0100 Message-Id: <20190815143220.4199-7-quentin.monnet@netronome.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190815143220.4199-1-quentin.monnet@netronome.com> References: <20190815143220.4199-1-quentin.monnet@netronome.com> Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org Some functions in bpftool have a "__printf()" format attributes to tell the compiler they should expect printf()-like arguments. But because these attributes are not used for the function prototypes in the header files, the compiler does not run the checks everywhere the functions are used, and some mistakes on format string and corresponding arguments slipped in over time. Let's move the __printf() attributes to the correct places. Note: We add guards around the definition of GCC_VERSION in tools/include/linux/compiler-gcc.h to prevent a conflict in jit_disasm.c on GCC_VERSION from headers pulled via libbfd. Fixes: c101189bc968 ("tools: bpftool: fix -Wmissing declaration warnings") Reported-by: Jakub Kicinski Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski --- tools/bpf/bpftool/common.c | 4 ++-- tools/bpf/bpftool/json_writer.c | 6 ++---- tools/bpf/bpftool/json_writer.h | 6 ++++-- tools/bpf/bpftool/main.h | 4 ++-- tools/include/linux/compiler-gcc.h | 2 ++ 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/tools/bpf/bpftool/common.c b/tools/bpf/bpftool/common.c index 6a71324be628..88264abaa738 100644 --- a/tools/bpf/bpftool/common.c +++ b/tools/bpf/bpftool/common.c @@ -29,7 +29,7 @@ #define BPF_FS_MAGIC 0xcafe4a11 #endif -void __printf(1, 2) p_err(const char *fmt, ...) +void p_err(const char *fmt, ...) { va_list ap; @@ -47,7 +47,7 @@ void __printf(1, 2) p_err(const char *fmt, ...) va_end(ap); } -void __printf(1, 2) p_info(const char *fmt, ...) +void p_info(const char *fmt, ...) { va_list ap; diff --git a/tools/bpf/bpftool/json_writer.c b/tools/bpf/bpftool/json_writer.c index 6046dcab51cc..86501cd3c763 100644 --- a/tools/bpf/bpftool/json_writer.c +++ b/tools/bpf/bpftool/json_writer.c @@ -15,7 +15,6 @@ #include #include #include -#include #include "json_writer.h" @@ -153,8 +152,7 @@ void jsonw_name(json_writer_t *self, const char *name) putc(' ', self->out); } -void __printf(2, 0) -jsonw_vprintf_enquote(json_writer_t *self, const char *fmt, va_list ap) +void jsonw_vprintf_enquote(json_writer_t *self, const char *fmt, va_list ap) { jsonw_eor(self); putc('"', self->out); @@ -162,7 +160,7 @@ jsonw_vprintf_enquote(json_writer_t *self, const char *fmt, va_list ap) putc('"', self->out); } -void __printf(2, 3) jsonw_printf(json_writer_t *self, const char *fmt, ...) +void jsonw_printf(json_writer_t *self, const char *fmt, ...) { va_list ap; diff --git a/tools/bpf/bpftool/json_writer.h b/tools/bpf/bpftool/json_writer.h index cb9a1993681c..35cf1f00f96c 100644 --- a/tools/bpf/bpftool/json_writer.h +++ b/tools/bpf/bpftool/json_writer.h @@ -14,6 +14,7 @@ #include #include #include +#include /* Opaque class structure */ typedef struct json_writer json_writer_t; @@ -30,8 +31,9 @@ void jsonw_pretty(json_writer_t *self, bool on); void jsonw_name(json_writer_t *self, const char *name); /* Add value */ -void jsonw_vprintf_enquote(json_writer_t *self, const char *fmt, va_list ap); -void jsonw_printf(json_writer_t *self, const char *fmt, ...); +void __printf(2, 0) jsonw_vprintf_enquote(json_writer_t *self, const char *fmt, + va_list ap); +void __printf(2, 3) jsonw_printf(json_writer_t *self, const char *fmt, ...); void jsonw_string(json_writer_t *self, const char *value); void jsonw_bool(json_writer_t *self, bool value); void jsonw_float(json_writer_t *self, double number); diff --git a/tools/bpf/bpftool/main.h b/tools/bpf/bpftool/main.h index 7031a4bf87a0..af9ad56c303a 100644 --- a/tools/bpf/bpftool/main.h +++ b/tools/bpf/bpftool/main.h @@ -98,8 +98,8 @@ extern int bpf_flags; extern struct pinned_obj_table prog_table; extern struct pinned_obj_table map_table; -void p_err(const char *fmt, ...); -void p_info(const char *fmt, ...); +void __printf(1, 2) p_err(const char *fmt, ...); +void __printf(1, 2) p_info(const char *fmt, ...); bool is_prefix(const char *pfx, const char *str); int detect_common_prefix(const char *arg, ...); diff --git a/tools/include/linux/compiler-gcc.h b/tools/include/linux/compiler-gcc.h index 0d35f18006a1..95c072b70d0e 100644 --- a/tools/include/linux/compiler-gcc.h +++ b/tools/include/linux/compiler-gcc.h @@ -6,9 +6,11 @@ /* * Common definitions for all gcc versions go here. */ +#ifndef GCC_VERSION #define GCC_VERSION (__GNUC__ * 10000 \ + __GNUC_MINOR__ * 100 \ + __GNUC_PATCHLEVEL__) +#endif #if GCC_VERSION >= 70000 && !defined(__CHECKER__) # define __fallthrough __attribute__ ((fallthrough))