src/solaris/native/java/net/NetworkInterface.c

Print this page

        

@@ -217,11 +217,13 @@
     ifs = enumInterfaces(env);
     if (ifs == NULL) {
         return NULL;
     }
 
-    name_utf = (*env)->GetStringUTFChars(env, name, &isCopy);
+    if ((name_utf = (*env)->GetStringUTFChars(env, name, &isCopy)) == NULL) {
+        return NULL;
+    }
 
     /*
      * Search the list of interface based on name
      */
     curr = ifs;

@@ -487,18 +489,19 @@
     int len;
     int sock;
     jboolean isCopy;
     const char* name_utf;
 
-    name_utf = (*env)->GetStringUTFChars(env, name, &isCopy);
+    if ((name_utf = (*env)->GetStringUTFChars(env, name, &isCopy)) == NULL) {
+        return JNI_FALSE;
+    }
 
-    if ((sock =openSocketWithFallback(env, name_utf)) < 0) {
+    if ((sock = openSocketWithFallback(env, name_utf)) < 0) {
        (*env)->ReleaseStringUTFChars(env, name, name_utf);
        return JNI_FALSE;
     }
 
-
     if (!IS_NULL(addrArray)) {
        (*env)->GetByteArrayRegion(env, addrArray, 0, 4, caddr);
        addr = ((caddr[0]<<24) & 0xff000000);
        addr |= ((caddr[1] <<16) & 0xff0000);
        addr |= ((caddr[2] <<8) & 0xff00);

@@ -534,13 +537,15 @@
     jboolean isCopy;
     int ret = -1;
     int sock;
     const char* name_utf;
 
-    name_utf = (*env)->GetStringUTFChars(env, name, &isCopy);
+    if ((name_utf = (*env)->GetStringUTFChars(env, name, &isCopy)) == NULL) {
+        return JNI_FALSE;
+    }
 
-    if ((sock =openSocketWithFallback(env, name_utf)) < 0) {
+    if ((sock = openSocketWithFallback(env, name_utf)) < 0) {
        (*env)->ReleaseStringUTFChars(env, name, name_utf);
        return JNI_FALSE;
     }
 
     ret = getMTU(env, sock, name_utf);

@@ -557,19 +562,19 @@
     jboolean isCopy;
     int ret, sock;
     const char* name_utf;
     int flags = 0;
 
-    name_utf = (*env)->GetStringUTFChars(env, name, &isCopy);
+    if ((name_utf = (*env)->GetStringUTFChars(env, name, &isCopy)) == NULL) {
+        return -1;
+    }
 
     if ((sock = openSocketWithFallback(env, name_utf)) < 0) {
         (*env)->ReleaseStringUTFChars(env, name, name_utf);
          return -1;
     }
 
-    name_utf = (*env)->GetStringUTFChars(env, name, &isCopy);
-
     ret = getFlags(sock, name_utf, &flags);
 
     close(sock);
     (*env)->ReleaseStringUTFChars(env, name, name_utf);