]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/sctp/sm_statefuns.c
[SCTP]: Set chunk->data_accepted only if we are going to accept it.
[net-next-2.6.git] / net / sctp / sm_statefuns.c
index e8498dce53354bbb1b53f9f3e98db12b2863d218..ead3f1b0ea3dad20e0844cc3b21be2ac2d75fa9e 100644 (file)
@@ -5283,7 +5283,6 @@ static int sctp_eat_data(const struct sctp_association *asoc,
        datalen -= sizeof(sctp_data_chunk_t);
 
        deliver = SCTP_CMD_CHUNK_ULP;
-       chunk->data_accepted = 1;
 
        /* Think about partial delivery. */
        if ((datalen >= asoc->rwnd) && (!asoc->ulpq.pd_mode)) {
@@ -5362,6 +5361,8 @@ static int sctp_eat_data(const struct sctp_association *asoc,
        if (SCTP_CMD_CHUNK_ULP == deliver)
                sctp_add_cmd_sf(commands, SCTP_CMD_REPORT_TSN, SCTP_U32(tsn));
 
+       chunk->data_accepted = 1;
+
        /* Note: Some chunks may get overcounted (if we drop) or overcounted
         * if we renege and the chunk arrives again.
         */