RFR: 7152948 msghdr structure not initialized properly in DatagramDispatcher (original) (raw)

Alan Bateman Alan.Bateman at oracle.com
Mon Mar 12 03:42:25 PDT 2012


On 12/03/2012 09:34, Shi Jun Zhang wrote:

Hi nio-dev,

In jdk/src/solaris/native/sun/nio/ch/DatagramDispatcher.c, there are some invocations of system call sendmsg/recvmsg. The second parameter of these 2 calls is a pointer to structure msghdr. The pointer needs to be initialized before it can be used. Currently it is initialized with #ifdef platform clause and it is NOT initialized properly on AIX. I think we can use memset(&m, 0, sizeof(m)) to initialized the pointer once for all platforms. Here is the webrev: http://cr.openjdk.java.net/~zhangshj/7152948/webrev.00/ I see 7152948 has been submitted as an incident, I've moved it to the right place as:

7152948: (dc) DatagramDispatcher.c should memset msghdr to make it portable to other platforms

The changes look okay to me but I think might be a bit cleaner to do the memset just prior to setting msg_iov/msg_iovlen (to keep the initialization of the msghdr structure in one place).

While you are there, can you change the value 16 to IOV_MAX? (requires limits.h).

-Alan



More information about the nio-dev mailing list