mirror of
https://git.freebsd.org/ports.git
synced 2025-05-29 01:16:28 -04:00
since a number of places in the code check for that and assume that it means an error occurred. On FreeBSD, in particular, the value of ifr_flags can be negative if multicast is enabled on the socket since the possible flags have expanded to fill more than a short. Instead of blindly promoting ifr_flags to an int, which will preserve the sign, we fill the int return value with ifr_flagshigh in the high 16 bits and ifr_flags in the low 16 bits. PR: 155186 Reported by: Alex Hayward <xelah-freebsd-pr@xelah.com>
17 lines
414 B
C
17 lines
414 B
C
$FreeBSD$
|
|
|
|
--- jdk/src/solaris/native/java/net/NetworkInterface.c Mon Jun 27 22:08:16 2011 -0700
|
|
+++ jdk/src/solaris/native/java/net/NetworkInterface.c Thu Jul 07 23:37:05 2011 -0700
|
|
@@ -1968,7 +1968,11 @@
|
|
return -1;
|
|
}
|
|
|
|
- return if2.ifr_flags;
|
|
+#ifdef __FreeBSD__
|
|
+ return ((if2.ifr_flags & 0xffff) | (if2.ifr_flagshigh << 16));
|
|
+#else
|
|
+ return (((int) if2.ifr_flags) & 0xffff);
|
|
+#endif
|
|
}
|
|
|
|
#endif
|