static int ip_clear_mutable_options(struct iphdr *iph, u32 *daddr)
{
unsigned char * optptr = (unsigned char*)(iph+1);
- int l = iph->ihl*4 - 20;
+ int l = iph->ihl*4 - sizeof(struct iphdr);
int optlen;
while (l > 0) {
top_iph->frag_off = iph->frag_off;
top_iph->daddr = iph->daddr;
if (iph->ihl != 5)
- memcpy(top_iph+1, iph+1, iph->ihl*5 - 20);
+ memcpy(top_iph+1, iph+1, iph->ihl*4 - sizeof(struct iphdr));
}
ip_send_check(top_iph);
x->props.header_len = XFRM_ALIGN8(ahp->icv_trunc_len + AH_HLEN_NOICV);
if (x->props.mode)
- x->props.header_len += 20;
+ x->props.header_len += sizeof(struct iphdr);
x->data = ahp;
return 0;
crypto_cipher_setkey(esp->conf.tfm, esp->conf.key, esp->conf.key_len);
x->props.header_len = 8 + esp->conf.ivlen;
if (x->props.mode)
- x->props.header_len += 20;
+ x->props.header_len += sizeof(struct iphdr);
x->data = esp;
x->props.trailer_len = esp4_get_max_size(x, 0) - x->props.header_len;
return 0;
x->props.header_len = XFRM_ALIGN8(ahp->icv_trunc_len + AH_HLEN_NOICV);
if (x->props.mode)
- x->props.header_len += 40;
+ x->props.header_len += sizeof(struct ipv6hdr);
x->data = ahp;
return 0;
crypto_cipher_setkey(esp->conf.tfm, esp->conf.key, esp->conf.key_len);
x->props.header_len = 8 + esp->conf.ivlen;
if (x->props.mode)
- x->props.header_len += 40; /* XXX ext hdr */
+ x->props.header_len += sizeof(struct ipv6hdr);
x->data = esp;
return 0;