From 7060f16551ac7e90a865afc4282bef92053f0aad Mon Sep 17 00:00:00 2001 From: Steve Dickson Date: Fri, 30 Jun 2006 14:17:52 +0000 Subject: [PATCH] Forward ported the following: - Fixed and added debugging statements to rpc.mountd. - Fixed -p arg to work with priviledged ports (bz 156655) - Changed nfslock initscript to set LOCKD_TCPPORT and LOCKD_UDPPORT (bz 162133) - Added MOUNTD_NFS_V1 variable to version 1 of the mount protocol can be turned off. (bz 175729) - Fixed gssd to handel mixed case characters in the domainname. (bz 186069) --- nfs-utils-1.0.6-gssd_mixed_case.patch | 31 +++++++++++++++++++++++++++ nfs-utils-1.0.8-privports.patch | 28 ++++++++++++++++++++++++ nfs-utils.spec | 14 ++++++++++++ nfs.init | 5 +++++ nfslock.init | 11 ++++++++++ 5 files changed, 89 insertions(+) create mode 100644 nfs-utils-1.0.6-gssd_mixed_case.patch create mode 100644 nfs-utils-1.0.8-privports.patch diff --git a/nfs-utils-1.0.6-gssd_mixed_case.patch b/nfs-utils-1.0.6-gssd_mixed_case.patch new file mode 100644 index 0000000..bcb9a08 --- /dev/null +++ b/nfs-utils-1.0.6-gssd_mixed_case.patch @@ -0,0 +1,31 @@ +--- nfs-utils-1.0.6/utils/gssd/gssd_proc.c.gssd 2006-03-02 14:36:10.000000000 -0500 ++++ nfs-utils-1.0.6/utils/gssd/gssd_proc.c 2006-03-02 14:38:47.000000000 -0500 +@@ -53,6 +53,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -115,6 +116,7 @@ read_service_info(char *info_file_name, + int fd = -1; + struct hostent *ent = NULL; + int numfields; ++ char *s; + + *servicename = *servername = *protocol = NULL; + +@@ -155,6 +157,12 @@ read_service_info(char *info_file_name, + printerr(0, "ERROR: can't resolve server %s name\n", address); + goto fail; + } ++ ++ /* don't allow mixed-case names to rain on our parade */ ++ for (s = ent->h_name; s && *s; s++) { ++ *s = tolower((int)*s); ++ } ++ + if (!(*servername = calloc(strlen(ent->h_name) + 1, 1))) + goto fail; + memcpy(*servername, ent->h_name, strlen(ent->h_name)); diff --git a/nfs-utils-1.0.8-privports.patch b/nfs-utils-1.0.8-privports.patch new file mode 100644 index 0000000..5d230aa --- /dev/null +++ b/nfs-utils-1.0.8-privports.patch @@ -0,0 +1,28 @@ +--- nfs-utils-1.0.8/utils/statd/statd.c.orig 2005-12-19 23:12:47.000000000 -0500 ++++ nfs-utils-1.0.8/utils/statd/statd.c 2006-06-30 10:03:38.000000000 -0400 +@@ -231,7 +231,7 @@ int main (int argc, char **argv) + extern char *optarg; + int pid; + int arg; +- int port = 0, out_port = 0; ++ int port = 0, out_port = 0, doonce = 0; + struct rlimit rlim; + + int pipefds[2] = { -1, -1}; +@@ -440,7 +440,6 @@ int main (int argc, char **argv) + + create_pidfile(); + atexit(truncate_pidfile); +- drop_privs(); + + for (;;) { + if (!(run_mode & MODE_NOTIFY_ONLY)) { +@@ -469,6 +468,8 @@ int main (int argc, char **argv) + if (!(run_mode & MODE_NOTIFY_ONLY)) { + rpc_init("statd", SM_PROG, SM_VERS, sm_prog_1, port); + } ++ if (doonce++ < 1) ++ drop_privs(); + + /* + * Handle incoming requests: SM_NOTIFY socket requests, as diff --git a/nfs-utils.spec b/nfs-utils.spec index c7bd37f..7d7e78a 100644 --- a/nfs-utils.spec +++ b/nfs-utils.spec @@ -20,6 +20,9 @@ Patch51: nfs-utils-1.0.6-mountd.patch Patch52: nfs-utils-1.0.6-idmap.conf.patch Patch53: nfs-utils-1.0.8-nfsd-vers.patch Patch54: nfs-utils-1.0.8-nfsd-ports.patch +Patch55: nfs-utils-1.0.8-mountd-debug.patch +Patch56: nfs-utils-1.0.6-gssd_mixed_case.patch +Patch57: nfs-utils-1.0.8-privports.patch Patch100: nfs-utils-1.0.8-compile.patch @@ -64,6 +67,9 @@ clients which are mounted on that host. %patch52 -p1 %patch53 -p1 %patch54 -p1 +%patch55 -p1 +%patch56 -p1 +%patch57 -p1 # Do the magic to get things to compile %patch100 -p1 @@ -221,6 +227,14 @@ fi * Fri Jun 30 2006 1.0.8-3 - Split the controlling of nfs version, ports, and protocol into two different patches +- Fixed and added debugging statements to rpc.mountd. +- Fixed -p arg to work with priviledged ports (bz 156655) +- Changed nfslock initscript to set LOCKD_TCPPORT and + LOCKD_UDPPORT (bz 162133) +- Added MOUNTD_NFS_V1 variable to version 1 of the + mount protocol can be turned off. (bz 175729) +- Fixed gssd to handel mixed case characters in + the domainname. (bz 186069) * Wed Jun 21 2006 1.0.8-2 - Updated to nfs-utils-1.0.8 diff --git a/nfs.init b/nfs.init index 3e25061..ca39f64 100755 --- a/nfs.init +++ b/nfs.init @@ -74,6 +74,11 @@ case "$1" in [ -n "$MOUNTD_PORT" ] \ && RPCMOUNTDOPTS="$RPCMOUNTDOPTS -p $MOUNTD_PORT" + case $MOUNTD_NFS_V1 in + no|NO) + RPCMOUNTDOPTS="$RPCMOUNTDOPTS --no-nfs-version 1" ;; + esac + case $MOUNTD_NFS_V2 in no|NO) RPCMOUNTDOPTS="$RPCMOUNTDOPTS --no-nfs-version 2" ;; diff --git a/nfslock.init b/nfslock.init index 7d8d5e7..4856789 100755 --- a/nfslock.init +++ b/nfslock.init @@ -58,6 +58,16 @@ start() { echo -n $"Starting NFS locking: " daemon rpc.lockd echo + else + # See if the kernel lockd should start up + # listening on a particular port + # + LOCKDARG="" + [ -n "$LOCKD_TCPPORT" ] && LOCKDARG="nlm_tcpport=$LOCKD_TCPPORT" + [ -n "$LOCKD_UDPPORT" ] && \ + LOCKDARG="$LOCKDARG nlm_udpport=$LOCKD_UDPPORT" + [ -n "$LOCKDARG" ] && \ + modprobe lockd $LOCKDARG fi echo -n $"Starting NFS statd: " # See if a statd's ports has been defined @@ -79,6 +89,7 @@ stop() { killproc lockd -KILL echo fi + echo -n $"Stopping NFS statd: " killproc rpc.statd RETVAL=0