From: Thomas Haller <thaller@redhat.com>
To: NetFilter <netfilter-devel@vger.kernel.org>
Cc: Thomas Haller <thaller@redhat.com>
Subject: [PATCH nft v2 8/8] include: drop "format" attribute from nft_gmp_print()
Date: Tue, 29 Aug 2023 14:53:37 +0200 [thread overview]
Message-ID: <20230829125809.232318-9-thaller@redhat.com> (raw)
In-Reply-To: <20230829125809.232318-1-thaller@redhat.com>
nft_gmp_print() passes the format string and arguments to
gmp_vfprintf(). Note that the format string is then interpreted
by gmp, which also understand special specifiers like "%Zx".
Note that with clang we get various compiler warnings:
datatype.c:299:26: error: invalid conversion specifier 'Z' [-Werror,-Wformat-invalid-specifier]
nft_gmp_print(octx, "0x%Zx [invalid type]", expr->value);
~^
gcc doesn't warn, because to gcc 'Z' is a deprecated alias for 'z' and
because the 3rd argument of the attribute((format())) is zero (so gcc
doesn't validate the arguments). But Z specifier in gmp expects a
"mpz_t" value and not a size_t. It's really not the same thing.
The correct solution is not to mark the function to accept a printf format
string.
Fixes: 2535ba7006f2 ('src: get rid of printf')
Signed-off-by: Thomas Haller <thaller@redhat.com>
---
include/nftables.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/include/nftables.h b/include/nftables.h
index 219a10100206..b9b2b01c2689 100644
--- a/include/nftables.h
+++ b/include/nftables.h
@@ -236,8 +236,7 @@ void realm_table_rt_exit(struct nft_ctx *ctx);
int nft_print(struct output_ctx *octx, const char *fmt, ...)
__attribute__((format(printf, 2, 3)));
-int nft_gmp_print(struct output_ctx *octx, const char *fmt, ...)
- __attribute__((format(printf, 2, 0)));
+int nft_gmp_print(struct output_ctx *octx, const char *fmt, ...);
int nft_optimize(struct nft_ctx *nft, struct list_head *cmds);
--
2.41.0
next prev parent reply other threads:[~2023-08-29 13:00 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-29 12:53 [PATCH nft v2 0/8] fix compiler warnings with clang Thomas Haller
2023-08-29 12:53 ` [PATCH nft v2 1/8] netlink: avoid "-Wenum-conversion" warning in dtype_map_from_kernel() Thomas Haller
2023-08-29 12:53 ` [PATCH nft v2 2/8] netlink: avoid "-Wenum-conversion" warning in parser_bison.y Thomas Haller
2023-08-29 12:53 ` [PATCH nft v2 3/8] datatype: avoid cast-align warning with struct sockaddr result from getaddrinfo() Thomas Haller
2023-08-29 12:53 ` [PATCH nft v2 4/8] evaluate: fix check for truncation in stmt_evaluate_log_prefix() Thomas Haller
2023-08-29 12:53 ` [PATCH nft v2 5/8] src: rework SNPRINTF_BUFFER_SIZE() and handle truncation Thomas Haller
2023-08-29 12:53 ` [PATCH nft v2 6/8] evaluate: don't needlessly clear full string buffer in stmt_evaluate_log_prefix() Thomas Haller
2023-08-29 18:08 ` Pablo Neira Ayuso
2023-08-29 18:55 ` Thomas Haller
2023-08-29 12:53 ` [PATCH nft v2 7/8] src: suppress "-Wunused-but-set-variable" warning with "parser_bison.c" Thomas Haller
2023-08-29 12:53 ` Thomas Haller [this message]
2023-08-29 15:00 ` [PATCH nft v2 0/8] fix compiler warnings with clang Pablo Neira Ayuso
2023-08-29 17:52 ` Thomas Haller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230829125809.232318-9-thaller@redhat.com \
--to=thaller@redhat.com \
--cc=netfilter-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.