libgcj/9684: java.lang.Socket leaks file desciptors on a connection timeout

gladish@spinnakernet.com gladish@spinnakernet.com
Thu Feb 13 03:16:00 GMT 2003


>Number:         9684
>Category:       libgcj
>Synopsis:       java.lang.Socket leaks file desciptors on a connection timeout
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Feb 13 03:16:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     gladish@spinnakernet.com
>Release:        gcj-3.1
>Organization:
>Environment:
redhat linux
>Description:
When using any of the public constructors that call the connect() method, an exception may be thrown if the connect() times out, which results in a leaked open file descriptor.
>How-To-Repeat:

>Fix:
48c48,53
<     impl.connect(host, port);
---
>     try {
>       impl.connect(host, port);
>     } catch (IOException e) {
>       impl.close();
>       throw e;
>     }
62c67,72
<     impl.connect(address, port);
---
>     try {
>       impl.connect(address, port);
>     } catch (IOException e) {
>         impl.close();
>         throw e;
>     }
74,75c84,90
<     impl.bind(localAddr, localPort);
<     impl.connect(host, port);
---
>     try {
>       impl.bind(localAddr, localPort);
>       impl.connect(host, port);
>     } catch (IOException e) {
>       impl.close();
>       throw e;
>     }
87,88c102,108
<     impl.bind(localAddr, localPort);
<     impl.connect(address, port);
---
>     try {
>       impl.bind(localAddr, localPort);
>       impl.connect(address, port);
>     } catch (IOException e) {
>       impl.close();
>       throw e;
>     }
98d117
<     impl.create(stream);
101a121
>     impl.create(stream);
105c125,130
<     impl.connect(host, port);
---
>     try {
>       impl.connect(host, port);
>     } catch (IOException e) {
>       impl.close();
>       throw e;
>     }
115d139
<     impl.create(stream);
118a143
>     impl.create(stream);
122c147,152
<     impl.connect(host, port);
---
>     try {
>       impl.connect(host, port);
>     } catch (IOException e) {
>       impl.close();
>       throw e;
>     }
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-bugs mailing list