]> git.hungrycats.org Git - linux/commitdiff
[SCTP] Fix accessing Gap Ack blocks array with a -ve index in
authorSridhar Samudrala <sri@us.ibm.com>
Wed, 5 May 2004 03:15:28 +0000 (20:15 -0700)
committerSridhar Samudrala <sridhar@dyn9-47-18-140.beaverton.ibm.com>
Wed, 5 May 2004 03:15:28 +0000 (20:15 -0700)
sctp_outq_sack()

net/sctp/outqueue.c

index 4e07a5654ba144aa84a5c31c42972805d1048ad4..02272a71c39285d48304d5bfd4e3711ba49c1a28 100644 (file)
@@ -1056,8 +1056,10 @@ int sctp_outq_sack(struct sctp_outq *q, struct sctp_sackhdr *sack)
        }
 
        /* Get the highest TSN in the sack. */
-       highest_tsn = sack_ctsn +
-               ntohs(frags[ntohs(sack->num_gap_ack_blocks) - 1].gab.end);
+       highest_tsn = sack_ctsn;
+       if (sack->num_gap_ack_blocks)
+               highest_tsn +=
+                   ntohs(frags[ntohs(sack->num_gap_ack_blocks) - 1].gab.end);
 
        if (TSN_lt(asoc->highest_sacked, highest_tsn)) {
                highest_new_tsn = highest_tsn;