diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2005-04-20 01:30:14 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-04-20 01:30:14 -0400 |
commit | 357b40a18b04c699da1d45608436e9b76b50e251 (patch) | |
tree | 51c4480c9508a911d52a3f69bbe84ec1191fd202 /include/linux | |
parent | fd92833a52b972aafacced959f4a3f7541936a9b (diff) |
[IPV6]: IPV6_CHECKSUM socket option can corrupt kernel memory
So here is a patch that introduces skb_store_bits -- the opposite of
skb_copy_bits, and uses them to read/write the csum field in rawv6.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/skbuff.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index aa35797ebfbf..9f2d75e4f087 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -1183,6 +1183,8 @@ extern unsigned int skb_checksum(const struct sk_buff *skb, int offset, | |||
1183 | int len, unsigned int csum); | 1183 | int len, unsigned int csum); |
1184 | extern int skb_copy_bits(const struct sk_buff *skb, int offset, | 1184 | extern int skb_copy_bits(const struct sk_buff *skb, int offset, |
1185 | void *to, int len); | 1185 | void *to, int len); |
1186 | extern int skb_store_bits(const struct sk_buff *skb, int offset, | ||
1187 | void *from, int len); | ||
1186 | extern unsigned int skb_copy_and_csum_bits(const struct sk_buff *skb, | 1188 | extern unsigned int skb_copy_and_csum_bits(const struct sk_buff *skb, |
1187 | int offset, u8 *to, int len, | 1189 | int offset, u8 *to, int len, |
1188 | unsigned int csum); | 1190 | unsigned int csum); |