John, On 2012-12-19 23:33, John Zavgren wrote: > Dmitry: > Are you suggesting that in the definition of, for example, dbgsysConnect(), > we convert the namelen argument to be a socklen_t?
The best approach IMHO, is dbgsysConnect(int fd, struct sockaddr *name, socklen_t namelen) and change share/transport/socket/socketTransport.c:462 err = dbgsysConnect(socketFD, (struct sockaddr *)&sa, sizeof(sa)); to err = dbgsysConnect(socketFD, (struct sockaddr *)&sa, (socklen_t) sizeof(sa)); -Dmitry > > > int > dbgsysConnect(int fd, struct sockaddr *name, uint32_t namelen) { > int rv = connect(fd, name, (socklen_t)nameLength);<--- NEW > if (rv < 0 && (errno == EINPROGRESS || errno == EINTR)) { > return DBG_EINPROGRESS; > } else { > return rv; > } > } > Thanks! > John > ----- Original Message ----- > From: dmitry.samers...@oracle.com > To: john.zavg...@oracle.com > Cc: net-dev@openjdk.java.net > Sent: Wednesday, December 19, 2012 1:40:11 PM GMT -05:00 US/Canada Eastern > Subject: Re: RFR JDK-8005120 > > John, > > On 2012-12-19 22:25, John Zavgren wrote: >> Yes... I did consider that, but I didn't see any POSIX data types near the >> code I was changing, so I decided to use a "brute force" data type instead. > > connect, recvfrom etc almost always uses socklen_t, but socklen_t could > expands either to int or to unsigned it on different OS > > so as soon as the code pass a parameter directly to one of such > functions like e. g. > > 52 dbgsysConnect(int fd, struct sockaddr *name, uint32_t namelen) { > 53 int rv = connect(fd, name, namelen); > > on my opinion, we should use socklen_t > > -Dmitry > >> >> Shall I make that change? >> >> John >> ----- Original Message ----- >> From: dmitry.samers...@oracle.com >> To: john.zavg...@oracle.com >> Cc: net-dev@openjdk.java.net >> Sent: Wednesday, December 19, 2012 1:06:52 PM GMT -05:00 US/Canada Eastern >> Subject: Re: RFR JDK-8005120 >> >> John, >> >> Did you consider using socklen_t instead of uint32_t and unsigned int >> (for namelen etc) ? >> >> -Dmitry >> >> >> On 2012-12-19 19:36, John Zavgren wrote: >>> Greetings: >>> Please consider the following change to the two files: >>> src/share/transport/socket/sysSocket.h >>> src/solaris/transport/socket/socket_md.c >>> that eliminate compiler warnings that stem from the fact that the variables >>> that the native code passes to various system calls were not declared >>> correctly. They were declared as integers, but they must be "unsigned" >>> integers because they are used to define buffer lengths. Were one to supply >>> a negative value as an argument, it would be cast into an unsigned >>> "Martian" value and there'd be (hopefully) a system call error. >>> >>> Thanks! >>> John Zavgren >>> >>> http://cr.openjdk.java.net/~mullan/webrevs/jzavgren/8005120/ >>> >> >> > > -- Dmitry Samersoff Oracle Java development team, Saint Petersburg, Russia * Give Rabbit time, and he'll always get the answer