Browse Source

xfrm: Cleanup error handling of xfrm_state_clone

The error pointer passed to xfrm_state_clone() is unchecked,
so remove it and indicate an error by returning a null pointer.

Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Steffen Klassert 11 years ago
parent
commit
cc9ab60e57
1 changed files with 5 additions and 11 deletions
  1. 5 11
      net/xfrm/xfrm_state.c

+ 5 - 11
net/xfrm/xfrm_state.c

@@ -1148,10 +1148,9 @@ out:
 EXPORT_SYMBOL(xfrm_state_add);
 EXPORT_SYMBOL(xfrm_state_add);
 
 
 #ifdef CONFIG_XFRM_MIGRATE
 #ifdef CONFIG_XFRM_MIGRATE
-static struct xfrm_state *xfrm_state_clone(struct xfrm_state *orig, int *errp)
+static struct xfrm_state *xfrm_state_clone(struct xfrm_state *orig)
 {
 {
 	struct net *net = xs_net(orig);
 	struct net *net = xs_net(orig);
-	int err = -ENOMEM;
 	struct xfrm_state *x = xfrm_state_alloc(net);
 	struct xfrm_state *x = xfrm_state_alloc(net);
 	if (!x)
 	if (!x)
 		goto out;
 		goto out;
@@ -1200,15 +1199,13 @@ static struct xfrm_state *xfrm_state_clone(struct xfrm_state *orig, int *errp)
 	}
 	}
 
 
 	if (orig->replay_esn) {
 	if (orig->replay_esn) {
-		err = xfrm_replay_clone(x, orig);
-		if (err)
+		if (xfrm_replay_clone(x, orig))
 			goto error;
 			goto error;
 	}
 	}
 
 
 	memcpy(&x->mark, &orig->mark, sizeof(x->mark));
 	memcpy(&x->mark, &orig->mark, sizeof(x->mark));
 
 
-	err = xfrm_init_state(x);
-	if (err)
+	if (xfrm_init_state(x) < 0)
 		goto error;
 		goto error;
 
 
 	x->props.flags = orig->props.flags;
 	x->props.flags = orig->props.flags;
@@ -1223,8 +1220,6 @@ static struct xfrm_state *xfrm_state_clone(struct xfrm_state *orig, int *errp)
  error:
  error:
 	xfrm_state_put(x);
 	xfrm_state_put(x);
 out:
 out:
-	if (errp)
-		*errp = err;
 	return NULL;
 	return NULL;
 }
 }
 
 
@@ -1276,9 +1271,8 @@ struct xfrm_state *xfrm_state_migrate(struct xfrm_state *x,
 				      struct xfrm_migrate *m)
 				      struct xfrm_migrate *m)
 {
 {
 	struct xfrm_state *xc;
 	struct xfrm_state *xc;
-	int err;
 
 
-	xc = xfrm_state_clone(x, &err);
+	xc = xfrm_state_clone(x);
 	if (!xc)
 	if (!xc)
 		return NULL;
 		return NULL;
 
 
@@ -1291,7 +1285,7 @@ struct xfrm_state *xfrm_state_migrate(struct xfrm_state *x,
 		   state is to be updated as it is a part of triplet */
 		   state is to be updated as it is a part of triplet */
 		xfrm_state_insert(xc);
 		xfrm_state_insert(xc);
 	} else {
 	} else {
-		if ((err = xfrm_state_add(xc)) < 0)
+		if (xfrm_state_add(xc) < 0)
 			goto error;
 			goto error;
 	}
 	}