From 3381a4210cb985e5de9bc114fe58e643934c6c97 Mon Sep 17 00:00:00 2001 From: Dalibor Topic Date: Sun, 26 Nov 2006 20:51:57 +0000 Subject: Fix for bug #29133. 2006-11-26 Dalibor Topic Fixes bug #29133. * libraries/clib/nio/gnu_java_nio_VMSelector.c (Java_gnu_java_nio_VMSelector_select): Use strerror if strerror_r is not available. Reported by: Michael Franz gmail.com>, Riccardo Mottola libero.it> --- ChangeLog | 11 +++++++++++ native/jni/java-nio/gnu_java_nio_VMSelector.c | 12 +++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 11be0cc74..ebbb05116 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2006-11-26 Dalibor Topic + + Fixes bug #29133. + + * libraries/clib/nio/gnu_java_nio_VMSelector.c + (Java_gnu_java_nio_VMSelector_select): + Use strerror if strerror_r is not available. + + Reported by: Michael Franz gmail.com>, + Riccardo Mottola libero.it> + 2006-11-26 Dalibor Topic Fixes bug #26756. diff --git a/native/jni/java-nio/gnu_java_nio_VMSelector.c b/native/jni/java-nio/gnu_java_nio_VMSelector.c index f8a40aa7a..74a408c75 100644 --- a/native/jni/java-nio/gnu_java_nio_VMSelector.c +++ b/native/jni/java-nio/gnu_java_nio_VMSelector.c @@ -219,7 +219,7 @@ Java_gnu_java_nio_VMSelector_select (JNIEnv * env, fd_set except_fds; struct timeval real_time_data; struct timeval *time_data = NULL; - char message_buf[BUF_SIZE + 1]; + char *message; /* If a legal timeout value isn't given, use NULL. * This means an infinite timeout. The specification @@ -270,7 +270,8 @@ Java_gnu_java_nio_VMSelector_select (JNIEnv * env, if (result < 0) { - +#if defined(HAVE_STRERROR_R) + char message_buf[BUF_SIZE+1]; int errorcode = -result; if (strerror_r (errorcode, message_buf, BUF_SIZE)) @@ -283,7 +284,12 @@ Java_gnu_java_nio_VMSelector_select (JNIEnv * env, return 0; } - JCL_ThrowException (env, "java/io/IOException", message_buf); + message = message_buf; +#else + message = strerror(errno); +#endif + + JCL_ThrowException (env, "java/io/IOException", message); return 0; } -- cgit v1.2.1