Skip to content

Commit

Permalink
[SCTP]: Fix up sctp_rcv return value
Browse files Browse the repository at this point in the history
I was working on the ipip/xfrm problem and as usual I get side-tracked by
other problems.

As part of an attempt to change the IPv4 protocol handler calling
convention I found that SCTP violated the existing convention.

It's returning non-zero values after freeing the skb.  This is doubly bad
as 1) the skb gets resubmitted; 2) the return value is interpreted as a
protocol number.

This patch changes those return values to zero.

IPv6 doesn't suffer from this problem because it uses a positive return
value as an indication for resubmission.  So the only effect of this patch
there is to increment the IPSTATS_MIB_INDELIVERS counter which IMHO is
the right thing to do.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Herbert Xu authored and David S. Miller committed Mar 25, 2006
1 parent 9f51495 commit 2babf9d
Showing 1 changed file with 4 additions and 8 deletions.
12 changes: 4 additions & 8 deletions net/sctp/input.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,6 @@ int sctp_rcv(struct sk_buff *skb)
union sctp_addr dest;
int family;
struct sctp_af *af;
int ret = 0;

if (skb->pkt_type!=PACKET_HOST)
goto discard_it;
Expand Down Expand Up @@ -227,16 +226,13 @@ int sctp_rcv(struct sk_buff *skb)
goto discard_release;
nf_reset(skb);

ret = sk_filter(sk, skb, 1);
if (ret)
if (sk_filter(sk, skb, 1))
goto discard_release;

/* Create an SCTP packet structure. */
chunk = sctp_chunkify(skb, asoc, sk);
if (!chunk) {
ret = -ENOMEM;
if (!chunk)
goto discard_release;
}
SCTP_INPUT_CB(skb)->chunk = chunk;

/* Remember what endpoint is to handle this packet. */
Expand Down Expand Up @@ -277,11 +273,11 @@ int sctp_rcv(struct sk_buff *skb)
sctp_bh_unlock_sock(sk);
sock_put(sk);

return ret;
return 0;

discard_it:
kfree_skb(skb);
return ret;
return 0;

discard_release:
/* Release any structures we may be holding. */
Expand Down

0 comments on commit 2babf9d

Please sign in to comment.