linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / net / ipv6 / ah6.c
index 6778173..8496374 100644 (file)
@@ -213,7 +213,6 @@ static int ah6_output(struct xfrm_state *x, struct sk_buff *skb)
        ah->reserved = 0;
        ah->spi = x->id.spi;
        ah->seq_no = htonl(++x->replay.oseq);
-       xfrm_aevent_doreplay(x);
        ahp->icv(ahp, skb, ah->auth_data);
 
        err = 0;
@@ -229,7 +228,7 @@ error:
        return err;
 }
 
-static int ah6_input(struct xfrm_state *x, struct sk_buff *skb)
+static int ah6_input(struct xfrm_state *x, struct xfrm_decap_state *decap, struct sk_buff *skb)
 {
        /*
         * Before process AH
@@ -354,10 +353,12 @@ static int ah6_init_state(struct xfrm_state *x)
        if (x->encap)
                goto error;
 
-       ahp = kzalloc(sizeof(*ahp), GFP_KERNEL);
+       ahp = kmalloc(sizeof(*ahp), GFP_KERNEL);
        if (ahp == NULL)
                return -ENOMEM;
 
+       memset(ahp, 0, sizeof(*ahp));
+
        ahp->key = x->aalg->alg_key;
        ahp->key_len = (x->aalg->alg_key_len+7)/8;
        ahp->tfm = crypto_alloc_tfm(x->aalg->alg_name, 0);