>Number: 10868
>Category: libgcj
>Synopsis: java.net.ServerSocket's constructors create and leak extra sockets
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon May 19 16:46:01 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: [email protected]
>Release: HEAD
>Organization:
>Environment:
Red Hat Linux 9
>Description:
The control flow of ServerSocket(int port, int backlog, InetAddress bindAddr) is as follows:
this();
impl.create(true);
impl.bind(bindAddr, port);
impl.listen(backlog);
The call to this() also calls impl.create(true), meaning that a second socket is created and the original socket is leaked. ServerSocket(int port) and ServerSocket(int port, int backlog) both call ServerSocket(int port, int backlog, InetAddress bindAddr) so they also leak a socket per call.
>How-To-Repeat:
>Fix:
Remove the call to impl.create() from ServerSocket(int port, int backlog, InetAddress bindAddr).
>Release-Note:
>Audit-Trail:
>Unformatted:
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.