Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Apr 2003 12:20:11 -0700 (PDT)
From:      Larry Lansing <lansil@fuzzynerd.com>
To:        freebsd-java@FreeBSD.org
Subject:   Re: java/50729: java/jdk14: broken java.net.NetworkInterface calls (SIOCGIFCONF)
Message-ID:  <200304081920.h38JKBfF047208@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR java/50729; it has been noted by GNATS.

From: Larry Lansing <lansil@fuzzynerd.com>
To: FreeBSD-gnats-submit@FreeBSD.org
Cc:  
Subject: Re: java/50729: java/jdk14: broken java.net.NetworkInterface calls (SIOCGIFCONF)
Date: Tue, 8 Apr 2003 15:11:00 -0400

 Oops.  Forgot to add a "free" to the first call to the SIOCGIFCONF
 ioctl.  Use this patch instead.
 
 +5 points for writing a useful patch in a PR.  -10 points for
 including a memory leak.
 
 --- NetworkInterface.c.orig     Sat Apr  5 12:30:32 2003
 +++ NetworkInterface.c  Tue Apr  8 15:04:32 2003
 @@ -488,14 +488,25 @@
      /* need to do a dummy SIOCGIFCONF to determine the buffer size.
       * SIOCGIFCOUNT doesn't work
       */
 -    ifc.ifc_buf = NULL;
 +    buf = (char *)malloc(32768);
 +    if (!buf) {
 +        JNU_ThrowOutOfMemoryError(env, "heap allocation failed");
 +        (void) close(sock);
 +        return ifs;
 +    }
 +
 +    ifc.ifc_buf = buf;
 +    ifc.ifc_len = 32768;
 +
      if (ioctl(sock, SIOCGIFCONF, (char *)&ifc) < 0) {
          NET_ThrowByNameWithLastError(env , JNU_JAVANETPKG "SocketException",
                           "ioctl SIOCGIFCONF failed");
          close(sock);
 +        free(buf);
          return ifs;
      }
      bufsize = ifc.ifc_len;
 +    free(buf);
  #else
      if (ioctl(sock, SIOCGIFNUM, (char *)&numifs) < 0) {
          NET_ThrowByNameWithLastError(env , JNU_JAVANETPKG "SocketException",
 
 -- 
 Lawrence S. Lansing
 Project Links Technical Manager
 RPI Math Department
 http://links.math.rpi.edu/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304081920.h38JKBfF047208>