When building with Clang we encounter these warnings:
| net/netfilter/xt_TPROXY.c:173:5: error: format specifies type 'unsigned
| char' but the argument has type 'int' [-Werror,-Wformat] tproto,
| &iph->saddr, ntohs(hp->source),
-
| net/netfilter/xt_TPROXY.c:181:4: error: format specifies type 'unsigned
| char' but the argument has type 'int' [-Werror,-Wformat] tproto,
| &iph->saddr, ntohs(hp->source),
The format specifier `%hhu` refers to a u8 while tproto is an int. In
this case we weren't losing any data because ipv6_find_hdr returns an
int but its return value (nexthdr) is a u8. This u8 gets widened to an
int when returned from ipv6_find_hdr and assigned to tproto. The
previous format specifier is functionally fine but still produces a
warning due to a type mismatch.
The fix is simply to listen to Clang and change `%hhu` to `%d` for both
instances of the warning.
Link: https://github.com/ClangBuiltLinux/linux/issues/378
Signed-off-by: Justin Stitt <[email protected]>
---
It should be noted that for this entire file to build without -Wformat
warnings you should apply this `ntohs` patch which fixed many, many
-Wformat warnings in the kernel.
https://lore.kernel.org/all/[email protected]/
net/netfilter/xt_TPROXY.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/netfilter/xt_TPROXY.c b/net/netfilter/xt_TPROXY.c
index 459d0696c91a..5d74abffc94f 100644
--- a/net/netfilter/xt_TPROXY.c
+++ b/net/netfilter/xt_TPROXY.c
@@ -169,7 +169,7 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
targets on the same rule yet */
skb->mark = (skb->mark & ~tgi->mark_mask) ^ tgi->mark_value;
- pr_debug("redirecting: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
+ pr_debug("redirecting: proto %d %pI6:%hu -> %pI6:%hu, mark: %x\n",
tproto, &iph->saddr, ntohs(hp->source),
laddr, ntohs(lport), skb->mark);
@@ -177,7 +177,7 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
return NF_ACCEPT;
}
- pr_debug("no socket, dropping: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
+ pr_debug("no socket, dropping: proto %d %pI6:%hu -> %pI6:%hu, mark: %x\n",
tproto, &iph->saddr, ntohs(hp->source),
&iph->daddr, ntohs(hp->dest), skb->mark);
--
2.37.0.rc0.161.g10f37bed90-goog
On Thu, Jul 7, 2022 at 12:18 PM Justin Stitt <[email protected]> wrote:
>
> When building with Clang we encounter these warnings:
> | net/netfilter/xt_TPROXY.c:173:5: error: format specifies type 'unsigned
> | char' but the argument has type 'int' [-Werror,-Wformat] tproto,
> | &iph->saddr, ntohs(hp->source),
> -
> | net/netfilter/xt_TPROXY.c:181:4: error: format specifies type 'unsigned
> | char' but the argument has type 'int' [-Werror,-Wformat] tproto,
> | &iph->saddr, ntohs(hp->source),
>
> The format specifier `%hhu` refers to a u8 while tproto is an int. In
> this case we weren't losing any data because ipv6_find_hdr returns an
> int but its return value (nexthdr) is a u8. This u8 gets widened to an
> int when returned from ipv6_find_hdr and assigned to tproto. The
> previous format specifier is functionally fine but still produces a
> warning due to a type mismatch.
>
> The fix is simply to listen to Clang and change `%hhu` to `%d` for both
> instances of the warning.
>
> Link: https://github.com/ClangBuiltLinux/linux/issues/378
> Signed-off-by: Justin Stitt <[email protected]>
Thanks for the patch, this fixes the warning I observe when building
ARCH=arm64 allmodconfig with -Wno-format removed!
Reviewed-by: Nick Desaulniers <[email protected]>
Tested-by: Nick Desaulniers <[email protected]>
> ---
> It should be noted that for this entire file to build without -Wformat
> warnings you should apply this `ntohs` patch which fixed many, many
> -Wformat warnings in the kernel.
> https://lore.kernel.org/all/[email protected]/
>
> net/netfilter/xt_TPROXY.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/net/netfilter/xt_TPROXY.c b/net/netfilter/xt_TPROXY.c
> index 459d0696c91a..5d74abffc94f 100644
> --- a/net/netfilter/xt_TPROXY.c
> +++ b/net/netfilter/xt_TPROXY.c
> @@ -169,7 +169,7 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
> targets on the same rule yet */
> skb->mark = (skb->mark & ~tgi->mark_mask) ^ tgi->mark_value;
>
> - pr_debug("redirecting: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
> + pr_debug("redirecting: proto %d %pI6:%hu -> %pI6:%hu, mark: %x\n",
> tproto, &iph->saddr, ntohs(hp->source),
> laddr, ntohs(lport), skb->mark);
>
> @@ -177,7 +177,7 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
> return NF_ACCEPT;
> }
>
> - pr_debug("no socket, dropping: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
> + pr_debug("no socket, dropping: proto %d %pI6:%hu -> %pI6:%hu, mark: %x\n",
> tproto, &iph->saddr, ntohs(hp->source),
> &iph->daddr, ntohs(hp->dest), skb->mark);
>
> --
> 2.37.0.rc0.161.g10f37bed90-goog
>
--
Thanks,
~Nick Desaulniers
On Thu, Jul 07, 2022 at 12:17:45PM -0700, Justin Stitt wrote:
> diff --git a/net/netfilter/xt_TPROXY.c b/net/netfilter/xt_TPROXY.c
> index 459d0696c91a..5d74abffc94f 100644
> --- a/net/netfilter/xt_TPROXY.c
> +++ b/net/netfilter/xt_TPROXY.c
> @@ -169,7 +169,7 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
> targets on the same rule yet */
> skb->mark = (skb->mark & ~tgi->mark_mask) ^ tgi->mark_value;
>
> - pr_debug("redirecting: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
> + pr_debug("redirecting: proto %d %pI6:%hu -> %pI6:%hu, mark: %x\n",
> tproto, &iph->saddr, ntohs(hp->source),
> laddr, ntohs(lport), skb->mark);
>
> @@ -177,7 +177,7 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
> return NF_ACCEPT;
> }
>
> - pr_debug("no socket, dropping: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
> + pr_debug("no socket, dropping: proto %d %pI6:%hu -> %pI6:%hu, mark: %x\n",
> tproto, &iph->saddr, ntohs(hp->source),
> &iph->daddr, ntohs(hp->dest), skb->mark);
Could you instead send a patch to remove these pr_debug calls?
Thanks.
On Mon, Jul 11, 2022 at 2:04 AM Pablo Neira Ayuso <[email protected]> wrote:
>
> On Thu, Jul 07, 2022 at 12:17:45PM -0700, Justin Stitt wrote:
> > diff --git a/net/netfilter/xt_TPROXY.c b/net/netfilter/xt_TPROXY.c
> > index 459d0696c91a..5d74abffc94f 100644
> > --- a/net/netfilter/xt_TPROXY.c
> > +++ b/net/netfilter/xt_TPROXY.c
> > @@ -169,7 +169,7 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
> > targets on the same rule yet */
> > skb->mark = (skb->mark & ~tgi->mark_mask) ^ tgi->mark_value;
> >
> > - pr_debug("redirecting: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
> > + pr_debug("redirecting: proto %d %pI6:%hu -> %pI6:%hu, mark: %x\n",
> > tproto, &iph->saddr, ntohs(hp->source),
> > laddr, ntohs(lport), skb->mark);
> >
> > @@ -177,7 +177,7 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
> > return NF_ACCEPT;
> > }
> >
> > - pr_debug("no socket, dropping: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
> > + pr_debug("no socket, dropping: proto %d %pI6:%hu -> %pI6:%hu, mark: %x\n",
> > tproto, &iph->saddr, ntohs(hp->source),
> > &iph->daddr, ntohs(hp->dest), skb->mark);
>
> Could you instead send a patch to remove these pr_debug calls?
Do you mean all Instances of pr_debug in `xt_TPROXY.c` (of which there
are six) or just these two specific cases @ +169 and +177.
> Thanks.
On Mon, Jul 11, 2022 at 12:44:05PM -0700, Justin Stitt wrote:
> On Mon, Jul 11, 2022 at 2:04 AM Pablo Neira Ayuso <[email protected]> wrote:
> >
> > On Thu, Jul 07, 2022 at 12:17:45PM -0700, Justin Stitt wrote:
> > > diff --git a/net/netfilter/xt_TPROXY.c b/net/netfilter/xt_TPROXY.c
> > > index 459d0696c91a..5d74abffc94f 100644
> > > --- a/net/netfilter/xt_TPROXY.c
> > > +++ b/net/netfilter/xt_TPROXY.c
> > > @@ -169,7 +169,7 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
> > > targets on the same rule yet */
> > > skb->mark = (skb->mark & ~tgi->mark_mask) ^ tgi->mark_value;
> > >
> > > - pr_debug("redirecting: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
> > > + pr_debug("redirecting: proto %d %pI6:%hu -> %pI6:%hu, mark: %x\n",
> > > tproto, &iph->saddr, ntohs(hp->source),
> > > laddr, ntohs(lport), skb->mark);
> > >
> > > @@ -177,7 +177,7 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
> > > return NF_ACCEPT;
> > > }
> > >
> > > - pr_debug("no socket, dropping: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
> > > + pr_debug("no socket, dropping: proto %d %pI6:%hu -> %pI6:%hu, mark: %x\n",
> > > tproto, &iph->saddr, ntohs(hp->source),
> > > &iph->daddr, ntohs(hp->dest), skb->mark);
> >
> > Could you instead send a patch to remove these pr_debug calls?
>
> Do you mean all Instances of pr_debug in `xt_TPROXY.c` (of which there
> are six) or just these two specific cases @ +169 and +177.
Yes, remove all pr_debug instances, thanks.
pr_debug calls are no longer needed in this file.
Pablo suggested "a patch to remove these pr_debug calls". This patch has
some other beneficial collateral as it also silences multiple Clang
-Wformat warnings that were present in the pr_debug calls.
Suggested-by: Pablo Neira Ayuso <[email protected]>
Signed-off-by: Justin Stitt <[email protected]>
---
Suggestion here: https://lore.kernel.org/all/Ys0zZACWwGilTwHx@salvia/
net/netfilter/xt_TPROXY.c | 19 -------------------
1 file changed, 19 deletions(-)
diff --git a/net/netfilter/xt_TPROXY.c b/net/netfilter/xt_TPROXY.c
index 459d0696c91a..dc7284e6357b 100644
--- a/net/netfilter/xt_TPROXY.c
+++ b/net/netfilter/xt_TPROXY.c
@@ -74,18 +74,10 @@ tproxy_tg4(struct net *net, struct sk_buff *skb, __be32 laddr, __be16 lport,
/* This should be in a separate target, but we don't do multiple
targets on the same rule yet */
skb->mark = (skb->mark & ~mark_mask) ^ mark_value;
-
- pr_debug("redirecting: proto %hhu %pI4:%hu -> %pI4:%hu, mark: %x\n",
- iph->protocol, &iph->daddr, ntohs(hp->dest),
- &laddr, ntohs(lport), skb->mark);
-
nf_tproxy_assign_sock(skb, sk);
return NF_ACCEPT;
}
- pr_debug("no socket, dropping: proto %hhu %pI4:%hu -> %pI4:%hu, mark: %x\n",
- iph->protocol, &iph->saddr, ntohs(hp->source),
- &iph->daddr, ntohs(hp->dest), skb->mark);
return NF_DROP;
}
@@ -123,13 +115,11 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
tproto = ipv6_find_hdr(skb, &thoff, -1, NULL, NULL);
if (tproto < 0) {
- pr_debug("unable to find transport header in IPv6 packet, dropping\n");
return NF_DROP;
}
hp = skb_header_pointer(skb, thoff, sizeof(_hdr), &_hdr);
if (hp == NULL) {
- pr_debug("unable to grab transport header contents in IPv6 packet, dropping\n");
return NF_DROP;
}
@@ -168,19 +158,10 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
/* This should be in a separate target, but we don't do multiple
targets on the same rule yet */
skb->mark = (skb->mark & ~tgi->mark_mask) ^ tgi->mark_value;
-
- pr_debug("redirecting: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
- tproto, &iph->saddr, ntohs(hp->source),
- laddr, ntohs(lport), skb->mark);
-
nf_tproxy_assign_sock(skb, sk);
return NF_ACCEPT;
}
- pr_debug("no socket, dropping: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
- tproto, &iph->saddr, ntohs(hp->source),
- &iph->daddr, ntohs(hp->dest), skb->mark);
-
return NF_DROP;
}
--
2.37.0.144.g8ac04bfd2-goog
Hi Justin,
On Tue, Jul 12, 2022 at 11:34:52AM -0700, Justin Stitt wrote:
> pr_debug calls are no longer needed in this file.
>
> Pablo suggested "a patch to remove these pr_debug calls". This patch has
> some other beneficial collateral as it also silences multiple Clang
> -Wformat warnings that were present in the pr_debug calls.
>
> Suggested-by: Pablo Neira Ayuso <[email protected]>
> Signed-off-by: Justin Stitt <[email protected]>
Thanks for the patch!
Reviewed-by: Nathan Chancellor <[email protected]>
Couple of style comments below that probably warrant a v2, you can carry
the above tag forward for future revisions. No need to give me a
"Suggested-by".
> ---
> Suggestion here: https://lore.kernel.org/all/Ys0zZACWwGilTwHx@salvia/
>
> net/netfilter/xt_TPROXY.c | 19 -------------------
> 1 file changed, 19 deletions(-)
>
> diff --git a/net/netfilter/xt_TPROXY.c b/net/netfilter/xt_TPROXY.c
> index 459d0696c91a..dc7284e6357b 100644
> --- a/net/netfilter/xt_TPROXY.c
> +++ b/net/netfilter/xt_TPROXY.c
> @@ -74,18 +74,10 @@ tproxy_tg4(struct net *net, struct sk_buff *skb, __be32 laddr, __be16 lport,
> /* This should be in a separate target, but we don't do multiple
> targets on the same rule yet */
> skb->mark = (skb->mark & ~mark_mask) ^ mark_value;
> -
> - pr_debug("redirecting: proto %hhu %pI4:%hu -> %pI4:%hu, mark: %x\n",
> - iph->protocol, &iph->daddr, ntohs(hp->dest),
> - &laddr, ntohs(lport), skb->mark);
> -
> nf_tproxy_assign_sock(skb, sk);
> return NF_ACCEPT;
> }
>
> - pr_debug("no socket, dropping: proto %hhu %pI4:%hu -> %pI4:%hu, mark: %x\n",
> - iph->protocol, &iph->saddr, ntohs(hp->source),
> - &iph->daddr, ntohs(hp->dest), skb->mark);
> return NF_DROP;
> }
>
> @@ -123,13 +115,11 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
>
> tproto = ipv6_find_hdr(skb, &thoff, -1, NULL, NULL);
> if (tproto < 0) {
checkpatch.pl should have warned that these if statement braces here and
below are no longer necessary because there is only one statement within
them now.
if (tproto < 0)
return NF_DROP;
I believe it is important to do these types of style cleanups when doing
a larger change so that people do not try to do them as standalone
changes, which can irritate maintainers.
> - pr_debug("unable to find transport header in IPv6 packet, dropping\n");
> return NF_DROP;
> }
>
> hp = skb_header_pointer(skb, thoff, sizeof(_hdr), &_hdr);
> if (hp == NULL) {
> - pr_debug("unable to grab transport header contents in IPv6 packet, dropping\n");
> return NF_DROP;
> }
if (hp == NULL)
return NF_DROP;
could even go a step farther and make it
if (!hp)
return NF_DROP;
if there is a warning about that.
>
> @@ -168,19 +158,10 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
> /* This should be in a separate target, but we don't do multiple
> targets on the same rule yet */
> skb->mark = (skb->mark & ~tgi->mark_mask) ^ tgi->mark_value;
> -
> - pr_debug("redirecting: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
> - tproto, &iph->saddr, ntohs(hp->source),
> - laddr, ntohs(lport), skb->mark);
> -
> nf_tproxy_assign_sock(skb, sk);
> return NF_ACCEPT;
> }
>
> - pr_debug("no socket, dropping: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
> - tproto, &iph->saddr, ntohs(hp->source),
> - &iph->daddr, ntohs(hp->dest), skb->mark);
> -
> return NF_DROP;
> }
>
> --
> 2.37.0.144.g8ac04bfd2-goog
>
pr_debug calls are no longer needed in this file.
Pablo suggested "a patch to remove these pr_debug calls". This patch has
some other beneficial collateral as it also silences multiple Clang
-Wformat warnings that were present in the pr_debug calls.
Suggested-by: Pablo Neira Ayuso <[email protected]>
Reviewed-by: Nathan Chancellor <[email protected]>
Signed-off-by: Justin Stitt <[email protected]>
---
diff from v1 -> v2:
* converted if statement one-liner style
* x == NULL is now !x
net/netfilter/xt_TPROXY.c | 25 ++-----------------------
1 file changed, 2 insertions(+), 23 deletions(-)
diff --git a/net/netfilter/xt_TPROXY.c b/net/netfilter/xt_TPROXY.c
index 459d0696c91a..e4bea1d346cf 100644
--- a/net/netfilter/xt_TPROXY.c
+++ b/net/netfilter/xt_TPROXY.c
@@ -74,18 +74,10 @@ tproxy_tg4(struct net *net, struct sk_buff *skb, __be32 laddr, __be16 lport,
/* This should be in a separate target, but we don't do multiple
targets on the same rule yet */
skb->mark = (skb->mark & ~mark_mask) ^ mark_value;
-
- pr_debug("redirecting: proto %hhu %pI4:%hu -> %pI4:%hu, mark: %x\n",
- iph->protocol, &iph->daddr, ntohs(hp->dest),
- &laddr, ntohs(lport), skb->mark);
-
nf_tproxy_assign_sock(skb, sk);
return NF_ACCEPT;
}
- pr_debug("no socket, dropping: proto %hhu %pI4:%hu -> %pI4:%hu, mark: %x\n",
- iph->protocol, &iph->saddr, ntohs(hp->source),
- &iph->daddr, ntohs(hp->dest), skb->mark);
return NF_DROP;
}
@@ -122,16 +114,12 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
int tproto;
tproto = ipv6_find_hdr(skb, &thoff, -1, NULL, NULL);
- if (tproto < 0) {
- pr_debug("unable to find transport header in IPv6 packet, dropping\n");
+ if (tproto < 0)
return NF_DROP;
- }
hp = skb_header_pointer(skb, thoff, sizeof(_hdr), &_hdr);
- if (hp == NULL) {
- pr_debug("unable to grab transport header contents in IPv6 packet, dropping\n");
+ if (!hp)
return NF_DROP;
- }
/* check if there's an ongoing connection on the packet
* addresses, this happens if the redirect already happened
@@ -168,19 +156,10 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
/* This should be in a separate target, but we don't do multiple
targets on the same rule yet */
skb->mark = (skb->mark & ~tgi->mark_mask) ^ tgi->mark_value;
-
- pr_debug("redirecting: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
- tproto, &iph->saddr, ntohs(hp->source),
- laddr, ntohs(lport), skb->mark);
-
nf_tproxy_assign_sock(skb, sk);
return NF_ACCEPT;
}
- pr_debug("no socket, dropping: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
- tproto, &iph->saddr, ntohs(hp->source),
- &iph->daddr, ntohs(hp->dest), skb->mark);
-
return NF_DROP;
}
--
2.37.0.144.g8ac04bfd2-goog
On Tue, Jul 12, 2022 at 11:56 AM Nathan Chancellor <[email protected]> wrote:
>
> Hi Justin,
>
> On Tue, Jul 12, 2022 at 11:34:52AM -0700, Justin Stitt wrote:
> > pr_debug calls are no longer needed in this file.
> >
> > Pablo suggested "a patch to remove these pr_debug calls". This patch has
> > some other beneficial collateral as it also silences multiple Clang
> > -Wformat warnings that were present in the pr_debug calls.
> >
> > Suggested-by: Pablo Neira Ayuso <[email protected]>
> > Signed-off-by: Justin Stitt <[email protected]>
>
> Thanks for the patch!
>
> Reviewed-by: Nathan Chancellor <[email protected]>
>
> Couple of style comments below that probably warrant a v2, you can carry
> the above tag forward for future revisions. No need to give me a
> "Suggested-by".
>
> > ---
> > Suggestion here: https://lore.kernel.org/all/Ys0zZACWwGilTwHx@salvia/
> >
> > net/netfilter/xt_TPROXY.c | 19 -------------------
> > 1 file changed, 19 deletions(-)
> >
> > diff --git a/net/netfilter/xt_TPROXY.c b/net/netfilter/xt_TPROXY.c
> > index 459d0696c91a..dc7284e6357b 100644
> > --- a/net/netfilter/xt_TPROXY.c
> > +++ b/net/netfilter/xt_TPROXY.c
> > @@ -74,18 +74,10 @@ tproxy_tg4(struct net *net, struct sk_buff *skb, __be32 laddr, __be16 lport,
> > /* This should be in a separate target, but we don't do multiple
> > targets on the same rule yet */
> > skb->mark = (skb->mark & ~mark_mask) ^ mark_value;
> > -
> > - pr_debug("redirecting: proto %hhu %pI4:%hu -> %pI4:%hu, mark: %x\n",
> > - iph->protocol, &iph->daddr, ntohs(hp->dest),
> > - &laddr, ntohs(lport), skb->mark);
> > -
> > nf_tproxy_assign_sock(skb, sk);
> > return NF_ACCEPT;
> > }
> >
> > - pr_debug("no socket, dropping: proto %hhu %pI4:%hu -> %pI4:%hu, mark: %x\n",
> > - iph->protocol, &iph->saddr, ntohs(hp->source),
> > - &iph->daddr, ntohs(hp->dest), skb->mark);
> > return NF_DROP;
> > }
> >
> > @@ -123,13 +115,11 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
> >
> > tproto = ipv6_find_hdr(skb, &thoff, -1, NULL, NULL);
> > if (tproto < 0) {
>
> checkpatch.pl should have warned that these if statement braces here and
> below are no longer necessary because there is only one statement within
> them now.
Weirdly, checkpatch.pl gave 0 warnings regarding this patch. At any
rate, v2 is coming shortly. Thanks for the review!
>
> if (tproto < 0)
> return NF_DROP;
>
> I believe it is important to do these types of style cleanups when doing
> a larger change so that people do not try to do them as standalone
> changes, which can irritate maintainers.
>
> > - pr_debug("unable to find transport header in IPv6 packet, dropping\n");
> > return NF_DROP;
> > }
> >
> > hp = skb_header_pointer(skb, thoff, sizeof(_hdr), &_hdr);
> > if (hp == NULL) {
> > - pr_debug("unable to grab transport header contents in IPv6 packet, dropping\n");
> > return NF_DROP;
> > }
>
> if (hp == NULL)
> return NF_DROP;
>
> could even go a step farther and make it
>
> if (!hp)
> return NF_DROP;
>
> if there is a warning about that.
>
> >
> > @@ -168,19 +158,10 @@ tproxy_tg6_v1(struct sk_buff *skb, const struct xt_action_param *par)
> > /* This should be in a separate target, but we don't do multiple
> > targets on the same rule yet */
> > skb->mark = (skb->mark & ~tgi->mark_mask) ^ tgi->mark_value;
> > -
> > - pr_debug("redirecting: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
> > - tproto, &iph->saddr, ntohs(hp->source),
> > - laddr, ntohs(lport), skb->mark);
> > -
> > nf_tproxy_assign_sock(skb, sk);
> > return NF_ACCEPT;
> > }
> >
> > - pr_debug("no socket, dropping: proto %hhu %pI6:%hu -> %pI6:%hu, mark: %x\n",
> > - tproto, &iph->saddr, ntohs(hp->source),
> > - &iph->daddr, ntohs(hp->dest), skb->mark);
> > -
> > return NF_DROP;
> > }
> >
> > --
> > 2.37.0.144.g8ac04bfd2-goog
> >
Any chance a maintainer could take a look at this patch? I am trying
to get it through this cycle and we are so close to enabling the
-Wformat option for Clang. There's only a handful of patches remaining
until the patch enabling this warning can be sent!
On Mon, Jul 18, 2022 at 10:43:17AM -0700, Justin Stitt wrote:
> Any chance a maintainer could take a look at this patch? I am trying
> to get it through this cycle and we are so close to enabling the
> -Wformat option for Clang. There's only a handful of patches remaining
> until the patch enabling this warning can be sent!
I'll place this into nf-next, thanks.