summaryrefslogtreecommitdiffstats
path: root/net/xfrm
diff options
context:
space:
mode:
authorYueHaibing <yuehaibing@huawei.com>2018-07-25 16:54:33 +0800
committerSteffen Klassert <steffen.klassert@secunet.com>2018-07-26 07:13:44 +0200
commit934ffce1343f22ed5e2d0bd6da4440f4848074de (patch)
tree6e1ea52abf57e248ed6580f879ac95d02120541e /net/xfrm
parent5baf4f9c0035f3e33bb693a1a1e87599f6e804e6 (diff)
downloadlinux-stable-934ffce1343f22ed5e2d0bd6da4440f4848074de.tar.gz
linux-stable-934ffce1343f22ed5e2d0bd6da4440f4848074de.tar.bz2
linux-stable-934ffce1343f22ed5e2d0bd6da4440f4848074de.zip
xfrm: fix 'passing zero to ERR_PTR()' warning
Fix a static code checker warning: net/xfrm/xfrm_policy.c:1836 xfrm_resolve_and_create_bundle() warn: passing zero to 'ERR_PTR' xfrm_tmpl_resolve return 0 just means no xdst found, return NULL instead of passing zero to ERR_PTR. Fixes: d809ec895505 ("xfrm: do not assume that template resolving always returns xfrms") Signed-off-by: YueHaibing <yuehaibing@huawei.com> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Diffstat (limited to 'net/xfrm')
-rw-r--r--net/xfrm/xfrm_policy.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 2f70fe68b9b0..69f06f879091 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1752,7 +1752,10 @@ xfrm_resolve_and_create_bundle(struct xfrm_policy **pols, int num_pols,
/* Try to instantiate a bundle */
err = xfrm_tmpl_resolve(pols, num_pols, fl, xfrm, family);
if (err <= 0) {
- if (err != 0 && err != -EAGAIN)
+ if (err == 0)
+ return NULL;
+
+ if (err != -EAGAIN)
XFRM_INC_STATS(net, LINUX_MIB_XFRMOUTPOLERROR);
return ERR_PTR(err);
}