* the association TCB is re-constructed from the cookie.
         */
        __u32 raw_addr_list_len;
-       struct sctp_init_chunk peer_init[];
+       /* struct sctp_init_chunk peer_init[]; */
 };
 
 
 
                                         struct sctp_cookie *cookie,
                                         gfp_t gfp)
 {
-       int var_size2 = ntohs(cookie->peer_init->chunk_hdr.length);
+       struct sctp_init_chunk *peer_init = (struct sctp_init_chunk *)(cookie + 1);
+       int var_size2 = ntohs(peer_init->chunk_hdr.length);
        int var_size3 = cookie->raw_addr_list_len;
-       __u8 *raw = (__u8 *)cookie->peer_init + var_size2;
+       __u8 *raw = (__u8 *)peer_init + var_size2;
 
        return sctp_raw_to_bind_addrs(&asoc->base.bind_addr, raw, var_size3,
                                      asoc->ep->base.bind_addr.port, gfp);
 
                                         ktime_get_real());
 
        /* Copy the peer's init packet.  */
-       memcpy(&cookie->c.peer_init[0], init_chunk->chunk_hdr,
+       memcpy(cookie + 1, init_chunk->chunk_hdr,
               ntohs(init_chunk->chunk_hdr->length));
 
        /* Copy the raw local address list of the association. */
-       memcpy((__u8 *)&cookie->c.peer_init[0] +
+       memcpy((__u8 *)(cookie + 1) +
               ntohs(init_chunk->chunk_hdr->length), raw_addrs, addrs_len);
 
        if (sctp_sk(ep->base.sk)->hmac) {
 
        /* This is a brand-new association, so these are not yet side
         * effects--it is safe to run them here.
         */
-       peer_init = &chunk->subh.cookie_hdr->c.peer_init[0];
-
+       peer_init = (struct sctp_init_chunk *)(chunk->subh.cookie_hdr + 1);
        if (!sctp_process_init(new_asoc, chunk,
                               &chunk->subh.cookie_hdr->c.peer_addr,
                               peer_init, GFP_ATOMIC))
        /* new_asoc is a brand-new association, so these are not yet
         * side effects--it is safe to run them here.
         */
-       peer_init = &chunk->subh.cookie_hdr->c.peer_init[0];
-
+       peer_init = (struct sctp_init_chunk *)(chunk->subh.cookie_hdr + 1);
        if (!sctp_process_init(new_asoc, chunk, sctp_source(chunk), peer_init,
                               GFP_ATOMIC))
                goto nomem;
        /* new_asoc is a brand-new association, so these are not yet
         * side effects--it is safe to run them here.
         */
-       peer_init = &chunk->subh.cookie_hdr->c.peer_init[0];
+       peer_init = (struct sctp_init_chunk *)(chunk->subh.cookie_hdr + 1);
        if (!sctp_process_init(new_asoc, chunk, sctp_source(chunk), peer_init,
                               GFP_ATOMIC))
                goto nomem;