sctp: Fix memory leak in sctp_sf_do_5_2_4_dupcook
authorNavid Emamdoost <navid.emamdoost@gmail.com>
Fri, 22 Nov 2019 22:17:56 +0000 (16:17 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2019 08:21:30 +0000 (09:21 +0100)
[ Upstream commit b6631c6031c746ed004c4221ec0616d7a520f441 ]

In the implementation of sctp_sf_do_5_2_4_dupcook() the allocated
new_asoc is leaked if security_sctp_assoc_request() fails. Release it
via sctp_association_free().

Fixes: 2277c7cd75e3 ("sctp: Add LSM hooks")
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/sctp/sm_statefuns.c

index 713a669..559f09a 100644 (file)
@@ -2175,8 +2175,10 @@ enum sctp_disposition sctp_sf_do_5_2_4_dupcook(
 
        /* Update socket peer label if first association. */
        if (security_sctp_assoc_request((struct sctp_endpoint *)ep,
-                                       chunk->skb))
+                                       chunk->skb)) {
+               sctp_association_free(new_asoc);
                return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
+       }
 
        /* Set temp so that it won't be added into hashtable */
        new_asoc->temp = 1;