sctp: fix /proc/net/sctp/ memory leak
Subsystems (2)
PATCH 1/1 sctp: fix /proc/net/sctp/ memory leak
We are using single_open_net() and seq_open_net() in the opener functions, so avoid leaking memory by using single_release_net() and seq_release_net() as the struct file_operations release functions.
Discovered with Trinity (the syscall fuzzer).
Signed-off-by Tommi Rantala <[email protected]>
--- net/sctp/proc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
net/sctp/proc.c +4 -4
@@ -102,7 +102,7 @@ static const struct file_operations sctp_snmp_seq_fops = { .open = sctp_snmp_seq_open, .read = seq_read, .llseek = seq_lseek, - .release = single_release, + .release = single_release_net, };/* Set up the proc fs entry for 'snmp' object. */
@@ -251,7 +251,7 @@ static const struct file_operations sctp_eps_seq_fops = { .open = sctp_eps_seq_open, .read = seq_read, .llseek = seq_lseek, - .release = seq_release, + .release = seq_release_net, };/* Set up the proc fs entry for 'eps' object. */
@@ -372,7 +372,7 @@ static const struct file_operations sctp_assocs_seq_fops = { .open = sctp_assocs_seq_open, .read = seq_read, .llseek = seq_lseek, - .release = seq_release, + .release = seq_release_net, };/* Set up the proc fs entry for 'assocs' object. */
@@ -517,7 +517,7 @@ static const struct file_operations sctp_remaddr_seq_fops = { .open = sctp_remaddr_seq_open, .read = seq_read, .llseek = seq_lseek, - .release = seq_release, + .release = seq_release_net, };int __net_init sctp_remaddr_proc_init (struct net *net)
Signature · 1 line
1.7.9.5
Quoted 59 lines · Tommi Rantala
We are using
single_open_net()andseq_open_net()in the opener functions, so avoid leaking memory by usingsingle_release_net()andseq_release_net()as the structfile_operationsrelease functions.Discovered with Trinity (the syscall fuzzer).
Signed-off-by Tommi Rantala <[email protected]>--- net/sctp/proc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)net/sctp/proc.c +4
-4@@ -102,7 +102,7 @@ static const struct file_operations sctp_snmp_seq_fops = { .open = sctp_snmp_seq_open, .read = seq_read, .llseek = seq_lseek, - .release = single_release, + .release = single_release_net, };/* Set up the proc fs entry for 'snmp' object. */ @@ -251,7 +251,7 @@ static const struct file_operations sctp_eps_seq_fops = { .open = sctp_eps_seq_open, .read = seq_read, .llseek = seq_lseek, - .release = seq_release, + .release = seq_release_net, };/* Set up the proc fs entry for 'eps' object. */ @@ -372,7 +372,7 @@ static const struct file_operations sctp_assocs_seq_fops = { .open = sctp_assocs_seq_open, .read = seq_read, .llseek = seq_lseek, - .release = seq_release, + .release = seq_release_net, };/* Set up the proc fs entry for 'assocs' object. */ @@ -517,7 +517,7 @@ static const struct file_operations sctp_remaddr_seq_fops = { .open = sctp_remaddr_seq_open, .read = seq_read, .llseek = seq_lseek, - .release = seq_release, + .release = seq_release_net, };int __net_init sctp_remaddr_proc_init (struct net *net)Signature · 6 lines
1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Acked-by Neil Horman <[email protected]>
David Miller
maintainerThis won't get applied unless you submit it to properly [email protected]
Don't forget to incorporate Neil Horman's ACK when you do that.
Thanks.