|
@@ -461,10 +461,11 @@ static void copy_from_user_state(struct xfrm_state *x, struct xfrm_usersa_info *
|
|
|
* somehow made shareable and move it to xfrm_state.c - JHS
|
|
|
*
|
|
|
*/
|
|
|
-static void xfrm_update_ae_params(struct xfrm_state *x, struct nlattr **attrs)
|
|
|
+static void xfrm_update_ae_params(struct xfrm_state *x, struct nlattr **attrs,
|
|
|
+ int update_esn)
|
|
|
{
|
|
|
struct nlattr *rp = attrs[XFRMA_REPLAY_VAL];
|
|
|
- struct nlattr *re = attrs[XFRMA_REPLAY_ESN_VAL];
|
|
|
+ struct nlattr *re = update_esn ? attrs[XFRMA_REPLAY_ESN_VAL] : NULL;
|
|
|
struct nlattr *lt = attrs[XFRMA_LTIME_VAL];
|
|
|
struct nlattr *et = attrs[XFRMA_ETIMER_THRESH];
|
|
|
struct nlattr *rt = attrs[XFRMA_REPLAY_THRESH];
|
|
@@ -574,7 +575,7 @@ static struct xfrm_state *xfrm_state_construct(struct net *net,
|
|
|
goto error;
|
|
|
|
|
|
/* override default values from above */
|
|
|
- xfrm_update_ae_params(x, attrs);
|
|
|
+ xfrm_update_ae_params(x, attrs, 0);
|
|
|
|
|
|
return x;
|
|
|
|
|
@@ -1848,7 +1849,7 @@ static int xfrm_new_ae(struct sk_buff *skb, struct nlmsghdr *nlh,
|
|
|
goto out;
|
|
|
|
|
|
spin_lock_bh(&x->lock);
|
|
|
- xfrm_update_ae_params(x, attrs);
|
|
|
+ xfrm_update_ae_params(x, attrs, 1);
|
|
|
spin_unlock_bh(&x->lock);
|
|
|
|
|
|
c.event = nlh->nlmsg_type;
|