--- old/src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c 2015-09-15 21:07:59.000000000 +0200 +++ new/src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c 2015-09-15 21:07:59.000000000 +0200 @@ -955,17 +955,23 @@ (char *)&arg, sizeof(arg)) < 0) { JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", strerror(errno)); + close(fd); return; } if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char *)&arg, sizeof(arg)) < 0) { JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", strerror(errno)); + close(fd); return; } #endif /* __APPLE__ */ - setsockopt(fd, SOL_SOCKET, SO_BROADCAST, (char*) &t, sizeof(int)); + if (setsockopt(fd, SOL_SOCKET, SO_BROADCAST, (char*) &t, sizeof (int)) < 0) { + JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", strerror(errno)); + close(fd); + return; + } #if defined(__linux__) arg = 0; @@ -986,8 +992,12 @@ */ if (domain == AF_INET6) { int ttl = 1; - setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, (char *)&ttl, - sizeof(ttl)); + if (setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, (char *) &ttl, + sizeof (ttl)) < 0) { + JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", strerror(errno)); + close(fd); + return; + } } #endif /* __linux__ */