]> err.no Git - linux-2.6/commitdiff
[SCTP]: Correctly initialize error when parameter validation failed.
authorVlad Yasevich <vladislav.yasevich@hp.com>
Sun, 20 Jan 2008 14:10:46 +0000 (06:10 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 23:08:11 +0000 (15:08 -0800)
When parameter validation fails, there should be error causes that
specify what type of failure we've encountered.  If the causes are not
there, we lacked memory to allocated them.  Thus make that the default
value for the error.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/sm_statefuns.c

index 6e127573594e8ff0ff9c349a839f22b59a9f77fe..61cbd5a8dd0c4954c212cacaf7f46f403ca1408b 100644 (file)
@@ -481,7 +481,6 @@ sctp_disposition_t sctp_sf_do_5_1C_ack(const struct sctp_endpoint *ep,
        sctp_init_chunk_t *initchunk;
        struct sctp_chunk *err_chunk;
        struct sctp_packet *packet;
-       sctp_error_t error = SCTP_ERROR_NO_ERROR;
 
        if (!sctp_vtag_verify(chunk, asoc))
                return sctp_sf_pdiscard(ep, asoc, type, arg, commands);
@@ -506,6 +505,8 @@ sctp_disposition_t sctp_sf_do_5_1C_ack(const struct sctp_endpoint *ep,
                              (sctp_init_chunk_t *)chunk->chunk_hdr, chunk,
                              &err_chunk)) {
 
+               sctp_error_t error = SCTP_ERROR_NO_RESOURCE;
+
                /* This chunk contains fatal error. It is to be discarded.
                 * Send an ABORT, with causes.  If there are no causes,
                 * then there wasn't enough memory.  Just terminate
@@ -525,8 +526,6 @@ sctp_disposition_t sctp_sf_do_5_1C_ack(const struct sctp_endpoint *ep,
                                                SCTP_PACKET(packet));
                                SCTP_INC_STATS(SCTP_MIB_OUTCTRLCHUNKS);
                                error = SCTP_ERROR_INV_PARAM;
-                       } else {
-                               error = SCTP_ERROR_NO_RESOURCE;
                        }
                }