Since the variable 'first' is assigned to 1, the check
"if (truncate && !first)" will always be false.
Thanks to Coverity for spotting this issue.
Signed-off-by: Maxin B. John <[email protected]>
---
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
index 76b8937..441c1a4 100644
--- a/net/ipv6/mcast.c
+++ b/net/ipv6/mcast.c
@@ -1536,8 +1536,6 @@ static struct sk_buff *add_grec(struct sk_buff *skb, struct ifmcaddr6 *pmc,
if (AVAILABLE(skb) < sizeof(*psrc) +
first*sizeof(struct mld2_grec)) {
- if (truncate && !first)
- break; /* truncate these */
if (pgr)
pgr->grec_nsrcs = htons(scount);
if (skb)
* Maxin B John <[email protected]>:
> Since the variable 'first' is assigned to 1, the check
> "if (truncate && !first)" will always be false.
>
> Thanks to Coverity for spotting this issue.
>
> Signed-off-by: Maxin B. John <[email protected]>
> ---
I don't see that. We are within a 'for' loop, and some lines
below you will find an assignment of 'first = 0;'.
Best regards,
Nicolas Kaiser
> diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
> index 76b8937..441c1a4 100644
> --- a/net/ipv6/mcast.c
> +++ b/net/ipv6/mcast.c
> @@ -1536,8 +1536,6 @@ static struct sk_buff *add_grec(struct sk_buff *skb, struct ifmcaddr6 *pmc,
>
> if (AVAILABLE(skb) < sizeof(*psrc) +
> first*sizeof(struct mld2_grec)) {
> - if (truncate && !first)
> - break; /* truncate these */
> if (pgr)
> pgr->grec_nsrcs = htons(scount);
> if (skb)
Ahhh.. Another bogus report from Coverity.
>
> I don't see that. We are within a 'for' loop, and some lines
> below you will find an assignment of 'first = 0;'.
>
Thanks a lot for pointing it out.
Best Regards,
Maxin B John
Le samedi 14 mai 2011 à 16:43 +0300, Maxin B John a écrit :
> Since the variable 'first' is assigned to 1, the check
> "if (truncate && !first)" will always be false.
>
> Thanks to Coverity for spotting this issue.
>
> Signed-off-by: Maxin B. John <[email protected]>
> ---
> diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
> index 76b8937..441c1a4 100644
> --- a/net/ipv6/mcast.c
> +++ b/net/ipv6/mcast.c
> @@ -1536,8 +1536,6 @@ static struct sk_buff *add_grec(struct sk_buff *skb, struct ifmcaddr6 *pmc,
>
> if (AVAILABLE(skb) < sizeof(*psrc) +
> first*sizeof(struct mld2_grec)) {
> - if (truncate && !first)
> - break; /* truncate these */
> if (pgr)
> pgr->grec_nsrcs = htons(scount);
> if (skb)
At a first glance, I would say Coverity is wrong, unless you can explain
why it's right ;)
first can be 0 at this point, we are in a loop.
BTW "Removing invalid check" is a really wrong patch title.
Once you can prove your point, you should use "Remove useless check"
Thanks
Hi,
> At a first glance, I would say Coverity is wrong, unless you can explain
> why it's right ;)
>
> first can be 0 at this point, we are in a loop.
You are right.
> BTW "Removing invalid check" is a really wrong patch title.
>
> Once you can prove your point, you should use "Remove useless check"
>
I will keep it in mind. Thanks .
Best Regards,
Maxin B John