Attached is a small patch to set_nice() in misc.c that uses errno,
rather than nice()'s return value to determine if the call succeeded.
See 'man 2 nice' on a recent Linux distribution for why checking the
return value is unreliable.

--
========================================================================
Ian Pilcher                                        i.pilc...@comcast.net
========================================================================
diff -urNp ../openvpn-1.5.0-orig/misc.c ./misc.c
--- ../openvpn-1.5.0-orig/misc.c        2004-02-09 11:38:59.000000000 -0600
+++ ./misc.c    2004-02-09 12:25:08.000000000 -0600
@@ -139,7 +139,9 @@ set_nice (int niceval)
   if (niceval)
     {
 #ifdef HAVE_NICE
-      if (nice (niceval) < 0)
+      errno = 0;
+      nice (niceval);
+      if (errno != 0)
        msg (M_WARN | M_ERRNO, "WARNING: nice %d failed", niceval);
       else
        msg (M_INFO, "nice %d succeeded", niceval);

Reply via email to