From patchwork Tue Aug 21 17:48:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mahesh Bandewar X-Patchwork-Id: 960662 X-Patchwork-Delegate: shemminger@vyatta.com 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=bandewar.net Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bandewar-net.20150623.gappssmtp.com header.i=@bandewar-net.20150623.gappssmtp.com header.b="JT9AZ8yG"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41vypb5vnPz9s47 for ; Wed, 22 Aug 2018 03:48:55 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727435AbeHUVKB (ORCPT ); Tue, 21 Aug 2018 17:10:01 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:38378 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726715AbeHUVKB (ORCPT ); Tue, 21 Aug 2018 17:10:01 -0400 Received: by mail-pf1-f195.google.com with SMTP id x17-v6so8847197pfh.5 for ; Tue, 21 Aug 2018 10:48:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bandewar-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=WcbEiLvBtXDxINI2VpkUtN+wkvJ9k875ix2afVdqCjo=; b=JT9AZ8yG9SygkSNQC3OjAa5GrBiDIHKu4tYtm/FgLT8XaOx04EJ0Q+x3L/dDdhuAdY 4BmzsM5JsTGLG4wtROWGStXAkKmwTkqVwG8WdSVUOp47SJipR/gUX2B4ddpgdjsSw6PV JIFsjrDL7r8JTn15MB8a+mEvcvJwRq6d1V7Bb5FhwNFAu2u8qTCAuFaPm1pEhTQgeWhX KfemaHmKv5pJ5OYVlfTPofNkr/JrLPUPgk7PA7ZPXGlq/4gOjbOFETFShRze0UclJS0s sUbdPy8sK2130vQ5yvSkPmfHMvVTTOSsMihsKGMdR1yW6OVvMPVwkDTOloHcU9yMTprd 9sIQ== 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:mime-version :content-transfer-encoding; bh=WcbEiLvBtXDxINI2VpkUtN+wkvJ9k875ix2afVdqCjo=; b=WjGHIEvmGOuNCa8V3bXshGjWXPD7EULvH/yB2IMI5sPfzU6LwY/zRg1JvLHLOU4QkO wCvzjYwlBVgG6F2ADnS1t/7QL5IRrEOupCNKkVF8YfIw024yWih1z/U7YiEQDQqcXzyX /PWpBzLPt/KFHhyJHAXVg8b8tBRqbJB/qQyXCuXD66fdoUHt7wBDtBsvh+2eAHRPASyC ykA2YCgbGib/StvT3uxjaRcRk2SMrXrifNLdJT8LUiAvNgPLLipl4e3hRBWVH1CY88jn wcDBrNCsjWmtbOrCRKi/oj14NNToCduUc0fULKJ5mJYOlOChLmw4DNrRTTuB0VZWF1FW TbbQ== X-Gm-Message-State: AOUpUlHGyOpBkGB9K4q6pOu19EjjB0bvpwbEKzW9pef4SWtFly4ON3fC tQt35PStRdZxwNvOvqd5cZGn6InHul4= X-Google-Smtp-Source: AA+uWPzNeHCdTK//Z5UgzOfwD2RKcOV/bqBbYGADqpgizDnb7j0FlbSZGV7ogOys047VFi/Af2+/ZA== X-Received: by 2002:a62:57dc:: with SMTP id i89-v6mr54028767pfj.65.1534873733993; Tue, 21 Aug 2018 10:48:53 -0700 (PDT) Received: from localhost ([2620:15c:2c4:201:c7f9:6225:a527:f3a4]) by smtp.gmail.com with ESMTPSA id y4-v6sm16743772pfm.137.2018.08.21.10.48.53 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Aug 2018 10:48:53 -0700 (PDT) From: Mahesh Bandewar To: Stephen Hemminger Cc: netdev , Mahesh Bandewar Subject: [PATCHv2 iproute2 1/3] ipmaddr: use preferred_family when given Date: Tue, 21 Aug 2018 10:48:51 -0700 Message-Id: <20180821174851.208490-1-mahesh@bandewar.net> X-Mailer: git-send-email 2.18.0.865.gffc8e1a3cd6-goog MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Mahesh Bandewar When creating socket() AF_INET is used irrespective of the family that is given at the command-line (with -4, -6, or -0). This change will open the socket with the preferred family. Signed-off-by: Mahesh Bandewar --- ip/ipmaddr.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ip/ipmaddr.c b/ip/ipmaddr.c index a48499029e17..abf83784d0df 100644 --- a/ip/ipmaddr.c +++ b/ip/ipmaddr.c @@ -289,6 +289,7 @@ static int multiaddr_list(int argc, char **argv) static int multiaddr_modify(int cmd, int argc, char **argv) { struct ifreq ifr = {}; + int family; int fd; if (cmd == RTM_NEWADDR) @@ -324,7 +325,17 @@ static int multiaddr_modify(int cmd, int argc, char **argv) exit(-1); } - fd = socket(AF_INET, SOCK_DGRAM, 0); + switch (preferred_family) { + case AF_INET6: + case AF_PACKET: + case AF_INET: + family = preferred_family; + break; + default: + family = AF_INET; + } + + fd = socket(family, SOCK_DGRAM, 0); if (fd < 0) { perror("Cannot create socket"); exit(1); From patchwork Tue Aug 21 17:48:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mahesh Bandewar X-Patchwork-Id: 960663 X-Patchwork-Delegate: shemminger@vyatta.com 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=bandewar.net Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bandewar-net.20150623.gappssmtp.com header.i=@bandewar-net.20150623.gappssmtp.com header.b="q9KufK1g"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41vypf5Vxnz9s47 for ; Wed, 22 Aug 2018 03:48:58 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727442AbeHUVKE (ORCPT ); Tue, 21 Aug 2018 17:10:04 -0400 Received: from mail-pg1-f177.google.com ([209.85.215.177]:38674 "EHLO mail-pg1-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726715AbeHUVKE (ORCPT ); Tue, 21 Aug 2018 17:10:04 -0400 Received: by mail-pg1-f177.google.com with SMTP id k8-v6so4744115pgq.5 for ; Tue, 21 Aug 2018 10:48:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bandewar-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=sTsvHqxoRH9My2sXBWHMT0x+DugwguvlRQBGWhzPoKA=; b=q9KufK1gBI21Hf/Sd/SwrEqcx3BWDXd3ehZKILXXqS0v395dGefVt9XiSXMG5wlzqq HezWxW94gKw1VQfexK8rJBET3Ual56P/RPa/4cGYWnyDPZuWHPXYRN2TP359S4idgjXq 3wtuSjhq3kpb0H98vkXvkRVgpMyI9GhSIKK8ivnbBOeheMY5x3xTtapbedeIBU3+Ajng QdGCFuKxNTMUGKCjq8msgmHaP38Ps/6kCEV3aHtlvttdW60h0ZVUmCk6X6DXOe8AU6kl L525jRlpIYt8D92z4DXKIS0IeLlzmarwiO8pRY9DURRQhpRz0mp15VXpCKM3+apIuoRQ zgMw== 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:mime-version :content-transfer-encoding; bh=sTsvHqxoRH9My2sXBWHMT0x+DugwguvlRQBGWhzPoKA=; b=Zb1VXUlx99PxjKzbDHKu5J6yql4xGwVS3TFlKFI9+oasIjHywx3w17VMzPCXzbNOAa DXl55OkvjMzZrGKuCpzEhjkEVESqQSCj9LDmveDN19hhqwCpGl1V+SflasFsuPo62nSr LbZhkAtho47S/EehGjcDb2krYVN9btLn035PFNmUzrOXIBQ4OtgtUzPq++DqqCNlvYok DMAkADvHDDqE/0PxQ5Z1rhrK9Z6lvCv1VLetPuSp07YgjPhA+lB5rqtOcPdfbToRBh/E R6VNpt8hfGzJysP4a7nWkuKbQEzevFvdsy7EcL7ejygZC4NHPPidM35DdQjvJVem6TwS hOPg== X-Gm-Message-State: APzg51CCDb2vUeTGY615mBlrfPUcGNoSrSG1J3CEecpJm+Ep3jxqHBdN gTpXEK4Ok3QE00MnUGMybpHYDw== X-Google-Smtp-Source: ANB0VdYWuQzLy1SmpigCS8qOllsh/fgYAUou6+2tvU3WQ+80sRlLUSvPXcAc2XZMqrvUWcVXCnWKnw== X-Received: by 2002:a63:440a:: with SMTP id r10-v6mr2676426pga.417.1534873736477; Tue, 21 Aug 2018 10:48:56 -0700 (PDT) Received: from localhost ([2620:15c:2c4:201:c7f9:6225:a527:f3a4]) by smtp.gmail.com with ESMTPSA id l10-v6sm23222971pfj.179.2018.08.21.10.48.55 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Aug 2018 10:48:56 -0700 (PDT) From: Mahesh Bandewar To: Stephen Hemminger Cc: netdev , Mahesh Bandewar Subject: [PATCHv2 iproute2 2/3] tc: remove extern from prototype declarations Date: Tue, 21 Aug 2018 10:48:54 -0700 Message-Id: <20180821174854.208561-1-mahesh@bandewar.net> X-Mailer: git-send-email 2.18.0.865.gffc8e1a3cd6-goog MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Mahesh Bandewar Signed-off-by: Mahesh Bandewar --- tc/m_ematch.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tc/m_ematch.h b/tc/m_ematch.h index f634f19164fa..80b02cfad6cc 100644 --- a/tc/m_ematch.h +++ b/tc/m_ematch.h @@ -20,7 +20,7 @@ struct bstr struct bstr *next; }; -extern struct bstr * bstr_alloc(const char *text); +struct bstr * bstr_alloc(const char *text); static inline struct bstr * bstr_new(char *data, unsigned int len) { @@ -51,8 +51,8 @@ static inline struct bstr *bstr_next(struct bstr *b) return b->next; } -extern unsigned long bstrtoul(const struct bstr *b); -extern void bstr_print(FILE *fd, const struct bstr *b, int ascii); +unsigned long bstrtoul(const struct bstr *b); +void bstr_print(FILE *fd, const struct bstr *b, int ascii); struct ematch @@ -79,7 +79,7 @@ static inline struct ematch * new_ematch(struct bstr *args, int inverted) return e; } -extern void print_ematch_tree(const struct ematch *tree); +void print_ematch_tree(const struct ematch *tree); struct ematch_util @@ -107,9 +107,9 @@ static inline int parse_layer(struct bstr *b) return INT_MAX; } -extern int em_parse_error(int err, struct bstr *args, struct bstr *carg, +int em_parse_error(int err, struct bstr *args, struct bstr *carg, struct ematch_util *, char *fmt, ...); -extern int print_ematch(FILE *, const struct rtattr *); -extern int parse_ematch(int *, char ***, int, struct nlmsghdr *); +int print_ematch(FILE *, const struct rtattr *); +int parse_ematch(int *, char ***, int, struct nlmsghdr *); #endif From patchwork Tue Aug 21 17:48:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mahesh Bandewar X-Patchwork-Id: 960686 X-Patchwork-Delegate: shemminger@vyatta.com 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=bandewar.net Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bandewar-net.20150623.gappssmtp.com header.i=@bandewar-net.20150623.gappssmtp.com header.b="nw3j3TkP"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41w03w5qP4z9s4V for ; Wed, 22 Aug 2018 04:45:32 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727496AbeHUWGt (ORCPT ); Tue, 21 Aug 2018 18:06:49 -0400 Received: from mail-pl0-f66.google.com ([209.85.160.66]:42840 "EHLO mail-pl0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727412AbeHUWGt (ORCPT ); Tue, 21 Aug 2018 18:06:49 -0400 Received: by mail-pl0-f66.google.com with SMTP id g23-v6so6224868plq.9 for ; Tue, 21 Aug 2018 11:45:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bandewar-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=IMyJMNvhseqWL+pbjpUTWiroBjaIGIe6u3UAXu1A+FY=; b=nw3j3TkPU1ezoaacUQJsT1o1QQkJcv3H2Qhubyu+NbK4+Qpsfk6t7ggHPbES01TwsD XNtCnCGWFW5b9mSU6jO4dUqnkHhWqNglgfnhhuU3awyzF6QDapvuElYCbg3z+0q7szGI 8Y7RinMoecplgWjFqATg2aTwGHnBgxZ5Pz3oUvNGSR8ydVChSyDHXnk9XTn3ZnhLHjtF 4GJ37mwSXqRPXAsjny3P+31AEPB90N3j4E25BNqvpKuGeyPHHnRUKklYkUYEY8uXkSaG kTptf1drDwXYWvUPXHonNQ0BWz7nCmfDPRnpqhONgtYI5d7tI+a9AIZg0qLH528LTDap wnsQ== 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:mime-version :content-transfer-encoding; bh=IMyJMNvhseqWL+pbjpUTWiroBjaIGIe6u3UAXu1A+FY=; b=b8LxwSceisKGicMN38Tqdz9e4dhRXUsEOSKSe/upEFmCy/by9g34Ok4sOc1b1Ja+GX 9Dje4cIHCb8/evT2x/Wpnm4b43UwnAAH58y+w//kQUXjYN2u/0Z62vaDV0jZzZ+tDmef 2iPShIHdhY2p8vf0JkXIwKvAbJN0wkSqI5djn4hHAP4+feW0dbeXnh4S00Azncdgq81Q SQj4wDF2RJDcF29QxJ7qa0tejpoIeAJsMIchjDjgGXRaPc18p8X1vs+3XssxfKC/0mmx ARyfVLFiOltnZ1nEtdP+JcfSbPHNGJ9rBr42u5aDhUQ42jfDloZR8ElaSnkd4OSfoevm 8WTQ== X-Gm-Message-State: AOUpUlHeg1/neaMEp4v401NJsxAe2bVuoy8Ii24Vx0epctBE9KGw+Gb9 xBy6Wt/0IIQQK8pcvMxoSym36A== X-Google-Smtp-Source: AA+uWPy1uaUH99H2Bqm/Ewp2LFx9BR8BorZaNmDC39tkH3vABHDoBXpyCMUY3rc1AobI8cL79E78qw== X-Received: by 2002:a17:902:2ac3:: with SMTP id j61-v6mr50424411plb.172.1534877130058; Tue, 21 Aug 2018 11:45:30 -0700 (PDT) Received: from localhost ([2620:15c:2c4:201:c7f9:6225:a527:f3a4]) by smtp.gmail.com with ESMTPSA id w13-v6sm14512340pgs.89.2018.08.21.11.45.29 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Aug 2018 11:45:29 -0700 (PDT) From: Mahesh Bandewar To: Stephen Hemminger Cc: netdev , Mahesh Bandewar Subject: [PATCHv2 iproute2 3/3] iproute: make clang happy with iproute2 package Date: Tue, 21 Aug 2018 10:48:57 -0700 Message-Id: <20180821174857.208631-1-mahesh@bandewar.net> X-Mailer: git-send-email 2.18.0.865.gffc8e1a3cd6-goog MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Mahesh Bandewar These are primarily fixes for "string is not string literal" warnings / errors (with -Werror -Wformat-nonliteral). This should be a no-op change. I had to replace couple of print helper functions with the code they call as it was becoming harder to eliminate these warnings, however these helpers were used only at couple of places, so no major change as such. Signed-off-by: Mahesh Bandewar --- include/json_writer.h | 3 +-- ip/iplink_can.c | 19 ++++++++++++------- lib/color.c | 1 + lib/json_print.c | 1 + lib/json_writer.c | 15 +-------------- misc/ss.c | 3 ++- tc/m_ematch.c | 1 + tc/m_ematch.h | 1 + 8 files changed, 20 insertions(+), 24 deletions(-) diff --git a/include/json_writer.h b/include/json_writer.h index 9ab88e1dbdd9..0c8831c1136d 100644 --- a/include/json_writer.h +++ b/include/json_writer.h @@ -29,6 +29,7 @@ void jsonw_pretty(json_writer_t *self, bool on); void jsonw_name(json_writer_t *self, const char *name); /* Add value */ +__attribute__((format(printf, 2, 3))) void 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); @@ -59,8 +60,6 @@ void jsonw_luint_field(json_writer_t *self, const char *prop, unsigned long int num); void jsonw_lluint_field(json_writer_t *self, const char *prop, unsigned long long int num); -void jsonw_float_field_fmt(json_writer_t *self, const char *prop, - const char *fmt, double val); /* Collections */ void jsonw_start_object(json_writer_t *self); diff --git a/ip/iplink_can.c b/ip/iplink_can.c index 587413da15c4..c0deeb1f1fcf 100644 --- a/ip/iplink_can.c +++ b/ip/iplink_can.c @@ -316,11 +316,14 @@ static void can_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) struct can_bittiming *bt = RTA_DATA(tb[IFLA_CAN_BITTIMING]); if (is_json_context()) { + json_writer_t *jw; + open_json_object("bittiming"); print_int(PRINT_ANY, "bitrate", NULL, bt->bitrate); - jsonw_float_field_fmt(get_json_writer(), - "sample_point", "%.3f", - (float) bt->sample_point / 1000.); + jw = get_json_writer(); + jsonw_name(jw, "sample_point"); + jsonw_printf(jw, "%.3f", + (float) bt->sample_point / 1000); print_int(PRINT_ANY, "tq", NULL, bt->tq); print_int(PRINT_ANY, "prop_seg", NULL, bt->prop_seg); print_int(PRINT_ANY, "phase_seg1", @@ -415,12 +418,14 @@ static void can_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) RTA_DATA(tb[IFLA_CAN_DATA_BITTIMING]); if (is_json_context()) { + json_writer_t *jw; + open_json_object("data_bittiming"); print_int(PRINT_JSON, "bitrate", NULL, dbt->bitrate); - jsonw_float_field_fmt(get_json_writer(), - "sample_point", - "%.3f", - (float) dbt->sample_point / 1000.); + jw = get_json_writer(); + jsonw_name(jw, "sample_point"); + jsonw_printf(jw, "%.3f", + (float) dbt->sample_point / 1000.); print_int(PRINT_JSON, "tq", NULL, dbt->tq); print_int(PRINT_JSON, "prop_seg", NULL, dbt->prop_seg); print_int(PRINT_JSON, "phase_seg1", diff --git a/lib/color.c b/lib/color.c index eaf69e74d673..e5406294dfc4 100644 --- a/lib/color.c +++ b/lib/color.c @@ -132,6 +132,7 @@ void set_color_palette(void) is_dark_bg = 1; } +__attribute__((format(printf, 3, 4))) int color_fprintf(FILE *fp, enum color_attr attr, const char *fmt, ...) { int ret = 0; diff --git a/lib/json_print.c b/lib/json_print.c index 5dc41bfabfd4..77902824a738 100644 --- a/lib/json_print.c +++ b/lib/json_print.c @@ -100,6 +100,7 @@ void close_json_array(enum output_type type, const char *str) * functions handling different types */ #define _PRINT_FUNC(type_name, type) \ + __attribute__((format(printf, 4, 0))) \ void print_color_##type_name(enum output_type t, \ enum color_attr color, \ const char *key, \ diff --git a/lib/json_writer.c b/lib/json_writer.c index aa9ce1c65e51..68890b34ee92 100644 --- a/lib/json_writer.c +++ b/lib/json_writer.c @@ -152,6 +152,7 @@ void jsonw_name(json_writer_t *self, const char *name) putc(' ', self->out); } +__attribute__((format(printf, 2, 3))) void jsonw_printf(json_writer_t *self, const char *fmt, ...) { va_list ap; @@ -205,11 +206,6 @@ void jsonw_null(json_writer_t *self) jsonw_printf(self, "null"); } -void jsonw_float_fmt(json_writer_t *self, const char *fmt, double num) -{ - jsonw_printf(self, fmt, num); -} - void jsonw_float(json_writer_t *self, double num) { jsonw_printf(self, "%g", num); @@ -274,15 +270,6 @@ void jsonw_float_field(json_writer_t *self, const char *prop, double val) jsonw_float(self, val); } -void jsonw_float_field_fmt(json_writer_t *self, - const char *prop, - const char *fmt, - double val) -{ - jsonw_name(self, prop); - jsonw_float_fmt(self, fmt, val); -} - void jsonw_uint_field(json_writer_t *self, const char *prop, unsigned int num) { jsonw_name(self, prop); diff --git a/misc/ss.c b/misc/ss.c index 41e7762bb61f..93b1baf5dc40 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -976,6 +976,7 @@ static int buf_update(int len) } /* Append content to buffer as part of the current field */ +__attribute__((format(printf, 1, 2))) static void out(const char *fmt, ...) { struct column *f = current_field; @@ -1093,7 +1094,7 @@ static void print_header(void) { while (!field_is_last(current_field)) { if (!current_field->disabled) - out(current_field->header); + out("%s", current_field->header); field_next(); } } diff --git a/tc/m_ematch.c b/tc/m_ematch.c index ace4b3dd738b..a524b520b276 100644 --- a/tc/m_ematch.c +++ b/tc/m_ematch.c @@ -277,6 +277,7 @@ static int flatten_tree(struct ematch *head, struct ematch *tree) return count; } +__attribute__((format(printf, 5, 6))) int em_parse_error(int err, struct bstr *args, struct bstr *carg, struct ematch_util *e, char *fmt, ...) { diff --git a/tc/m_ematch.h b/tc/m_ematch.h index 80b02cfad6cc..95515a074624 100644 --- a/tc/m_ematch.h +++ b/tc/m_ematch.h @@ -107,6 +107,7 @@ static inline int parse_layer(struct bstr *b) return INT_MAX; } +__attribute__((format(printf, 5, 6))) int em_parse_error(int err, struct bstr *args, struct bstr *carg, struct ematch_util *, char *fmt, ...); int print_ematch(FILE *, const struct rtattr *);