Messages in this thread Patch in this message | | | From | Haoyi Liu <> | Subject | [PATCH net-next v2] net/ipv6: silence 'passing zero to ERR_PTR()' warning | Date | Thu, 13 Apr 2023 10:10:05 +0000 |
| |
Smatch complains that if xfrm_lookup() returns NULL then this does a weird thing with "err":
net/ ipv6/ icmp.c:411 icmpv6_route_lookup() warn: passing zero to ERR_PTR()
Merge conditional paths and remove unnecessary 'else'. No functional change.
Signed-off-by: Haoyi Liu <iccccc@hust.edu.cn> Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn> --- v1->v2: Remove unnecessary 'else'. The issue is found by static analysis, and the patch is remains untested. --- net/ipv6/icmp.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index 1f53f2a74480..a12eef11c7ee 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c @@ -393,17 +393,12 @@ static struct dst_entry *icmpv6_route_lookup(struct net *net, goto relookup_failed; dst2 = xfrm_lookup(net, dst2, flowi6_to_flowi(&fl2), sk, XFRM_LOOKUP_ICMP); - if (!IS_ERR(dst2)) { - dst_release(dst); - dst = dst2; - } else { - err = PTR_ERR(dst2); - if (err == -EPERM) { - dst_release(dst); - return dst2; - } else - goto relookup_failed; - } + err = PTR_ERR_OR_ZERO(dst2); + if (err && err != -EPERM) + goto relookup_failed; + + dst_release(dst); + return dst2; /* returns success or ERR_PTR(-EPERM) */ relookup_failed: if (dst) -- 2.40.0
| |