mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 19:56:18 +00:00
[SCTP]: Eliminate some pointer attributions to the skb layer headers
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
bd82393ca2
commit
a27ef749e7
2 changed files with 6 additions and 7 deletions
|
@ -506,7 +506,7 @@ void sctp_err_finish(struct sock *sk, struct sctp_association *asoc)
|
|||
void sctp_v4_err(struct sk_buff *skb, __u32 info)
|
||||
{
|
||||
struct iphdr *iph = (struct iphdr *)skb->data;
|
||||
struct sctphdr *sh = (struct sctphdr *)(skb->data + (iph->ihl <<2));
|
||||
const int ihlen = iph->ihl * 4;
|
||||
const int type = icmp_hdr(skb)->type;
|
||||
const int code = icmp_hdr(skb)->code;
|
||||
struct sock *sk;
|
||||
|
@ -516,7 +516,7 @@ void sctp_v4_err(struct sk_buff *skb, __u32 info)
|
|||
char *saveip, *savesctp;
|
||||
int err;
|
||||
|
||||
if (skb->len < ((iph->ihl << 2) + 8)) {
|
||||
if (skb->len < ihlen + 8) {
|
||||
ICMP_INC_STATS_BH(ICMP_MIB_INERRORS);
|
||||
return;
|
||||
}
|
||||
|
@ -525,8 +525,8 @@ void sctp_v4_err(struct sk_buff *skb, __u32 info)
|
|||
saveip = skb->nh.raw;
|
||||
savesctp = skb->h.raw;
|
||||
skb_reset_network_header(skb);
|
||||
skb->h.raw = (char *)sh;
|
||||
sk = sctp_err_lookup(AF_INET, skb, sh, &asoc, &transport);
|
||||
skb_set_transport_header(skb, ihlen);
|
||||
sk = sctp_err_lookup(AF_INET, skb, sctp_hdr(skb), &asoc, &transport);
|
||||
/* Put back, the original pointers. */
|
||||
skb->nh.raw = saveip;
|
||||
skb->h.raw = savesctp;
|
||||
|
|
|
@ -122,7 +122,6 @@ SCTP_STATIC void sctp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
|||
int type, int code, int offset, __be32 info)
|
||||
{
|
||||
struct inet6_dev *idev;
|
||||
struct sctphdr *sh = (struct sctphdr *)(skb->data + offset);
|
||||
struct sock *sk;
|
||||
struct sctp_association *asoc;
|
||||
struct sctp_transport *transport;
|
||||
|
@ -136,8 +135,8 @@ SCTP_STATIC void sctp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
|||
saveip = skb->nh.raw;
|
||||
savesctp = skb->h.raw;
|
||||
skb_reset_network_header(skb);
|
||||
skb->h.raw = (char *)sh;
|
||||
sk = sctp_err_lookup(AF_INET6, skb, sh, &asoc, &transport);
|
||||
skb_set_transport_header(skb, offset);
|
||||
sk = sctp_err_lookup(AF_INET6, skb, sctp_hdr(skb), &asoc, &transport);
|
||||
/* Put back, the original pointers. */
|
||||
skb->nh.raw = saveip;
|
||||
skb->h.raw = savesctp;
|
||||
|
|
Loading…
Reference in a new issue