From 91f514e41310363313cdaaed929d201d2a689b8e Mon Sep 17 00:00:00 2001 From: Dmitry Chagin Date: Tue, 8 Mar 2016 15:55:43 +0000 Subject: [PATCH] Does not leak fp. While here remove bogus cast of fp->f_data. MFC after: 1 week --- sys/compat/linux/linux_socket.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/compat/linux/linux_socket.c b/sys/compat/linux/linux_socket.c index 80dab32530d..ff99bbde6fc 100644 --- a/sys/compat/linux/linux_socket.c +++ b/sys/compat/linux/linux_socket.c @@ -803,9 +803,12 @@ linux_accept_common(struct thread *td, int s, l_uintptr_t addr, error1 = getsock_cap(td, s, &rights, &fp, NULL); if (error1 != 0) return (error1); - so = (struct socket *)fp->f_data; - if (so->so_type == SOCK_DGRAM) + so = fp->f_data; + if (so->so_type == SOCK_DGRAM) { + fdrop(fp, td); return (EOPNOTSUPP); + } + fdrop(fp, td); } return (error); }