From 9b25dd3e91e910d8d41d2f22534ac7460e510810 Mon Sep 17 00:00:00 2001 From: Steve Dickson Date: Fri, 14 Jan 2011 13:30:50 -0500 Subject: [PATCH] Updated to latest upstream release: nfs-utils-1-2-4-rc5 Signed-off-by: Steve Dickson --- ...2.4-rc3.patch => nfs-utils-1.2.4-rc5.patch | 379 +++++++++++++++--- nfs-utils.spec | 7 +- 2 files changed, 329 insertions(+), 57 deletions(-) rename nfs-utils-1.2.4-rc3.patch => nfs-utils-1.2.4-rc5.patch (84%) diff --git a/nfs-utils-1.2.4-rc3.patch b/nfs-utils-1.2.4-rc5.patch similarity index 84% rename from nfs-utils-1.2.4-rc3.patch rename to nfs-utils-1.2.4-rc5.patch index 35046d7..4782bb7 100644 --- a/nfs-utils-1.2.4-rc3.patch +++ b/nfs-utils-1.2.4-rc5.patch @@ -1,6 +1,6 @@ diff -up nfs-utils-1.2.3/aclocal/keyutils.m4.orig nfs-utils-1.2.3/aclocal/keyutils.m4 ---- nfs-utils-1.2.3/aclocal/keyutils.m4.orig 2010-11-29 11:18:44.168551958 -0500 -+++ nfs-utils-1.2.3/aclocal/keyutils.m4 2010-11-29 11:18:44.168551958 -0500 +--- nfs-utils-1.2.3/aclocal/keyutils.m4.orig 2011-01-14 13:27:17.497605500 -0500 ++++ nfs-utils-1.2.3/aclocal/keyutils.m4 2011-01-14 13:27:17.497605500 -0500 @@ -0,0 +1,11 @@ +dnl Checks for keyutils library and headers +dnl @@ -15,7 +15,7 @@ diff -up nfs-utils-1.2.3/aclocal/keyutils.m4.orig nfs-utils-1.2.3/aclocal/keyuti +])dnl diff -up nfs-utils-1.2.3/aclocal/libnfsidmap.m4.orig nfs-utils-1.2.3/aclocal/libnfsidmap.m4 --- nfs-utils-1.2.3/aclocal/libnfsidmap.m4.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/aclocal/libnfsidmap.m4 2010-11-29 11:18:44.168551958 -0500 ++++ nfs-utils-1.2.3/aclocal/libnfsidmap.m4 2011-01-14 13:27:17.498605703 -0500 @@ -14,4 +14,8 @@ AC_DEFUN([AC_LIBNFSIDMAP], [ [AC_DEFINE([HAVE_NFS4_SET_DEBUG], 1, [Define to 1 if you have the `nfs4_set_debug' function.])]) @@ -26,8 +26,8 @@ diff -up nfs-utils-1.2.3/aclocal/libnfsidmap.m4.orig nfs-utils-1.2.3/aclocal/lib + ])dnl diff -up nfs-utils-1.2.3/configure.ac.orig nfs-utils-1.2.3/configure.ac ---- nfs-utils-1.2.3/configure.ac.orig 2010-11-29 11:17:26.902868938 -0500 -+++ nfs-utils-1.2.3/configure.ac 2010-11-29 11:18:44.169551941 -0500 +--- nfs-utils-1.2.3/configure.ac.orig 2011-01-14 13:22:07.094642705 -0500 ++++ nfs-utils-1.2.3/configure.ac 2011-01-14 13:27:17.498605703 -0500 @@ -144,7 +144,7 @@ AC_ARG_ENABLE(tirpc, [AC_HELP_STRING([--enable-tirpc], [enable use of TI-RPC @<:@default=yes@:>@])], @@ -60,7 +60,7 @@ diff -up nfs-utils-1.2.3/configure.ac.orig nfs-utils-1.2.3/configure.ac tests/Makefile diff -up nfs-utils-1.2.3/.gitignore.orig nfs-utils-1.2.3/.gitignore --- nfs-utils-1.2.3/.gitignore.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/.gitignore 2010-11-29 11:18:44.168551958 -0500 ++++ nfs-utils-1.2.3/.gitignore 2011-01-14 13:27:17.497605500 -0500 @@ -64,6 +64,7 @@ tests/nsm_client/nlm_sm_inter.h tests/nsm_client/nlm_sm_inter_clnt.c tests/nsm_client/nlm_sm_inter_svc.c @@ -71,7 +71,7 @@ diff -up nfs-utils-1.2.3/.gitignore.orig nfs-utils-1.2.3/.gitignore # generic editor backup et al diff -up nfs-utils-1.2.3/support/export/client.c.orig nfs-utils-1.2.3/support/export/client.c --- nfs-utils-1.2.3/support/export/client.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/support/export/client.c 2010-11-29 11:18:44.170551927 -0500 ++++ nfs-utils-1.2.3/support/export/client.c 2011-01-14 13:27:17.499605906 -0500 @@ -178,6 +178,7 @@ out_badprefix: static int init_netmask6(nfs_client *UNUSED(clp), const char *UNUSED(slash)) @@ -82,7 +82,7 @@ diff -up nfs-utils-1.2.3/support/export/client.c.orig nfs-utils-1.2.3/support/ex diff -up nfs-utils-1.2.3/support/export/export.c.orig nfs-utils-1.2.3/support/export/export.c --- nfs-utils-1.2.3/support/export/export.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/support/export/export.c 2010-11-29 11:18:44.170551927 -0500 ++++ nfs-utils-1.2.3/support/export/export.c 2011-01-14 13:27:17.500606109 -0500 @@ -38,6 +38,7 @@ export_free(nfs_export *exp) xfree(exp->m_export.e_sqgids); free(exp->m_export.e_mountpoint); @@ -93,7 +93,7 @@ diff -up nfs-utils-1.2.3/support/export/export.c.orig nfs-utils-1.2.3/support/ex xfree(exp); diff -up nfs-utils-1.2.3/support/export/hostname.c.orig nfs-utils-1.2.3/support/export/hostname.c --- nfs-utils-1.2.3/support/export/hostname.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/support/export/hostname.c 2010-11-29 11:18:44.171551914 -0500 ++++ nfs-utils-1.2.3/support/export/hostname.c 2011-01-14 13:27:17.500606109 -0500 @@ -30,10 +30,6 @@ #include "sockaddr.h" #include "exportfs.h" @@ -116,7 +116,7 @@ diff -up nfs-utils-1.2.3/support/export/hostname.c.orig nfs-utils-1.2.3/support/ diff -up nfs-utils-1.2.3/support/include/nfslib.h.orig nfs-utils-1.2.3/support/include/nfslib.h --- nfs-utils-1.2.3/support/include/nfslib.h.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/support/include/nfslib.h 2010-11-29 11:18:44.172551902 -0500 ++++ nfs-utils-1.2.3/support/include/nfslib.h 2011-01-14 13:27:17.501606312 -0500 @@ -163,6 +163,12 @@ void closeall(int min); int svctcp_socket (u_long __number, int __reuse); int svcudp_socket (u_long __number); @@ -131,8 +131,8 @@ diff -up nfs-utils-1.2.3/support/include/nfslib.h.orig nfs-utils-1.2.3/support/i #define UNUSED(x) UNUSED_ ## x __attribute__((unused)) diff -up nfs-utils-1.2.3/support/nfs/atomicio.c.orig nfs-utils-1.2.3/support/nfs/atomicio.c ---- nfs-utils-1.2.3/support/nfs/atomicio.c.orig 2010-11-29 11:18:44.173551890 -0500 -+++ nfs-utils-1.2.3/support/nfs/atomicio.c 2010-11-29 11:18:44.173551890 -0500 +--- nfs-utils-1.2.3/support/nfs/atomicio.c.orig 2011-01-14 13:27:17.502606515 -0500 ++++ nfs-utils-1.2.3/support/nfs/atomicio.c 2011-01-14 13:27:17.502606515 -0500 @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2002 Marius Aamodt Eriksen @@ -190,7 +190,7 @@ diff -up nfs-utils-1.2.3/support/nfs/atomicio.c.orig nfs-utils-1.2.3/support/nfs +} diff -up nfs-utils-1.2.3/support/nfs/conffile.c.orig nfs-utils-1.2.3/support/nfs/conffile.c --- nfs-utils-1.2.3/support/nfs/conffile.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/support/nfs/conffile.c 2010-11-29 11:18:44.174551888 -0500 ++++ nfs-utils-1.2.3/support/nfs/conffile.c 2011-01-14 13:27:17.502606516 -0500 @@ -271,9 +271,9 @@ conf_parse_line(int trans, char *line, s if (ptr == NULL) return; @@ -204,8 +204,8 @@ diff -up nfs-utils-1.2.3/support/nfs/conffile.c.orig nfs-utils-1.2.3/support/nfs "non-matched '\"', ignoring until next section", ln); } else { diff -up nfs-utils-1.2.3/support/nfs/exports.c.orig nfs-utils-1.2.3/support/nfs/exports.c ---- nfs-utils-1.2.3/support/nfs/exports.c.orig 2010-11-29 11:17:26.906868973 -0500 -+++ nfs-utils-1.2.3/support/nfs/exports.c 2010-11-29 11:18:44.174551888 -0500 +--- nfs-utils-1.2.3/support/nfs/exports.c.orig 2011-01-14 13:22:07.097643314 -0500 ++++ nfs-utils-1.2.3/support/nfs/exports.c 2011-01-14 13:27:17.503606719 -0500 @@ -332,6 +332,8 @@ dupexportent(struct exportent *dst, stru dst->e_mountpoint = strdup(src->e_mountpoint); if (src->e_fslocdata) @@ -217,7 +217,7 @@ diff -up nfs-utils-1.2.3/support/nfs/exports.c.orig nfs-utils-1.2.3/support/nfs/ diff -up nfs-utils-1.2.3/support/nfs/Makefile.am.orig nfs-utils-1.2.3/support/nfs/Makefile.am --- nfs-utils-1.2.3/support/nfs/Makefile.am.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/support/nfs/Makefile.am 2010-11-29 11:18:44.172551902 -0500 ++++ nfs-utils-1.2.3/support/nfs/Makefile.am 2011-01-14 13:27:17.502606515 -0500 @@ -5,7 +5,7 @@ libnfs_a_SOURCES = exports.c rmtab.c xio xlog.c xcommon.c wildmat.c nfsclient.c \ nfsexport.c getfh.c nfsctl.c rpc_socket.c getport.c \ @@ -227,9 +227,24 @@ diff -up nfs-utils-1.2.3/support/nfs/Makefile.am.orig nfs-utils-1.2.3/support/nf MAINTAINERCLEANFILES = Makefile.in +diff -up nfs-utils-1.2.3/support/nfs/rpcdispatch.c.orig nfs-utils-1.2.3/support/nfs/rpcdispatch.c +--- nfs-utils-1.2.3/support/nfs/rpcdispatch.c.orig 2010-09-28 08:24:16.000000000 -0400 ++++ nfs-utils-1.2.3/support/nfs/rpcdispatch.c 2011-01-14 13:27:17.503606719 -0500 +@@ -37,6 +37,11 @@ rpc_dispatch(struct svc_req *rqstp, SVCX + return; + } + ++ if (dtable->nproc <= rqstp->rq_proc) { ++ svcerr_noproc(transp); ++ return; ++ } ++ + dent = dtable->entries + rqstp->rq_proc; + + if (dent->func == NULL) { diff -up nfs-utils-1.2.3/support/nfs/strlcat.c.orig nfs-utils-1.2.3/support/nfs/strlcat.c ---- nfs-utils-1.2.3/support/nfs/strlcat.c.orig 2010-11-29 11:18:44.175551873 -0500 -+++ nfs-utils-1.2.3/support/nfs/strlcat.c 2010-11-29 11:18:44.175551873 -0500 +--- nfs-utils-1.2.3/support/nfs/strlcat.c.orig 2011-01-14 13:27:17.505607123 -0500 ++++ nfs-utils-1.2.3/support/nfs/strlcat.c 2011-01-14 13:27:17.505607123 -0500 @@ -0,0 +1,76 @@ +/* $OpenBSD: strlcat.c,v 1.8 2001/05/13 15:40:15 deraadt Exp $ */ + @@ -308,8 +323,8 @@ diff -up nfs-utils-1.2.3/support/nfs/strlcat.c.orig nfs-utils-1.2.3/support/nfs/ + return(dlen + (s - src)); /* count does not include NUL */ +} diff -up nfs-utils-1.2.3/support/nfs/strlcpy.c.orig nfs-utils-1.2.3/support/nfs/strlcpy.c ---- nfs-utils-1.2.3/support/nfs/strlcpy.c.orig 2010-11-29 11:18:44.175551873 -0500 -+++ nfs-utils-1.2.3/support/nfs/strlcpy.c 2010-11-29 11:18:44.175551873 -0500 +--- nfs-utils-1.2.3/support/nfs/strlcpy.c.orig 2011-01-14 13:27:17.505607123 -0500 ++++ nfs-utils-1.2.3/support/nfs/strlcpy.c 2011-01-14 13:27:17.506607326 -0500 @@ -0,0 +1,72 @@ +/* $OpenBSD: strlcpy.c,v 1.5 2001/05/13 15:40:16 deraadt Exp $ */ + @@ -385,7 +400,7 @@ diff -up nfs-utils-1.2.3/support/nfs/strlcpy.c.orig nfs-utils-1.2.3/support/nfs/ +} diff -up nfs-utils-1.2.3/support/nfs/svc_create.c.orig nfs-utils-1.2.3/support/nfs/svc_create.c --- nfs-utils-1.2.3/support/nfs/svc_create.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/support/nfs/svc_create.c 2010-11-29 11:18:44.176551853 -0500 ++++ nfs-utils-1.2.3/support/nfs/svc_create.c 2011-01-14 13:27:17.506607326 -0500 @@ -27,6 +27,7 @@ #include #include @@ -693,9 +708,133 @@ diff -up nfs-utils-1.2.3/support/nfs/svc_create.c.orig nfs-utils-1.2.3/support/n void (*dispatch)(struct svc_req *, SVCXPRT *), const uint16_t port) { +diff -up nfs-utils-1.2.3/support/nsm/file.c.orig nfs-utils-1.2.3/support/nsm/file.c +--- nfs-utils-1.2.3/support/nsm/file.c.orig 2011-01-14 13:22:07.094642705 -0500 ++++ nfs-utils-1.2.3/support/nsm/file.c 2011-01-14 13:27:17.507607529 -0500 +@@ -127,7 +127,7 @@ exact_error_check(const ssize_t len, con + * containing an appropriate pathname, or NULL if an error + * occurs. Caller must free the returned result with free(3). + */ +-__attribute_malloc__ ++__attribute__((__malloc__)) + static char * + nsm_make_record_pathname(const char *directory, const char *hostname) + { +@@ -175,7 +175,7 @@ nsm_make_record_pathname(const char *dir + * containing an appropriate pathname, or NULL if an error + * occurs. Caller must free the returned result with free(3). + */ +-__attribute_malloc__ ++__attribute__((__malloc__)) + static char * + nsm_make_pathname(const char *directory) + { +@@ -205,7 +205,7 @@ nsm_make_pathname(const char *directory) + * containing an appropriate pathname, or NULL if an error + * occurs. Caller must free the returned result with free(3). + */ +-__attribute_malloc__ ++__attribute__((__malloc__)) + static char * + nsm_make_temp_pathname(const char *pathname) + { +@@ -422,7 +422,7 @@ nsm_drop_privileges(const int pidfd) + */ + if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) == -1) { + xlog(L_ERROR, "prctl(PR_SET_KEEPCAPS) failed: %m"); +- return 0; ++ return false; + } + + if (setgroups(0, NULL) == -1) { +@@ -569,9 +569,8 @@ nsm_retire_monitored_hosts(void) + + while ((de = readdir(dir)) != NULL) { + char *src, *dst; ++ struct stat stb; + +- if (de->d_type != (unsigned char)DT_REG) +- continue; + if (de->d_name[0] == '.') + continue; + +@@ -581,6 +580,20 @@ nsm_retire_monitored_hosts(void) + continue; + } + ++ /* NB: not all file systems fill in d_type correctly */ ++ if (lstat(src, &stb) == -1) { ++ xlog_warn("Bad monitor file %s, skipping: %m", ++ de->d_name); ++ free(src); ++ continue; ++ } ++ if (!S_ISREG(stb.st_mode)) { ++ xlog(D_GENERAL, "Skipping non-regular file %s", ++ de->d_name); ++ free(src); ++ continue; ++ } ++ + dst = nsm_make_record_pathname(NSM_NOTIFY_DIR, de->d_name); + if (dst == NULL) { + free(src); +@@ -635,7 +648,7 @@ nsm_priv_to_hex(const char *priv, char * + /* + * Returns the length in bytes of the created record. + */ +-__attribute_noinline__ ++__attribute__((__noinline__)) + static size_t + nsm_create_monitor_record(char *buf, const size_t buflen, + const struct sockaddr *sap, const struct mon *m) +@@ -785,7 +798,7 @@ out: + return result; + } + +-__attribute_noinline__ ++__attribute__((__noinline__)) + static _Bool + nsm_parse_line(char *line, struct sockaddr_in *sin, struct mon *m) + { +@@ -847,7 +860,7 @@ nsm_read_line(const char *hostname, cons + } + + /* +- * Given a filename, reads data from a file under NSM_MONITOR_DIR ++ * Given a filename, reads data from a file under "directory" + * and invokes @func so caller can populate their in-core + * database with this data. + */ +@@ -864,10 +877,15 @@ nsm_load_host(const char *directory, con + if (path == NULL) + goto out_err; + +- if (stat(path, &stb) == -1) { ++ if (lstat(path, &stb) == -1) { + xlog(L_ERROR, "Failed to stat %s: %m", path); + goto out_freepath; + } ++ if (!S_ISREG(stb.st_mode)) { ++ xlog(D_GENERAL, "Skipping non-regular file %s", ++ path); ++ goto out_freepath; ++ } + + f = fopen(path, "r"); + if (f == NULL) { +@@ -914,8 +932,6 @@ nsm_load_dir(const char *directory, nsm_ + } + + while ((de = readdir(dir)) != NULL) { +- if (de->d_type != (unsigned char)DT_REG) +- continue; + if (de->d_name[0] == '.') + continue; + diff -up nfs-utils-1.2.3/tests/nsm_client/nsm_client.c.orig nfs-utils-1.2.3/tests/nsm_client/nsm_client.c --- nfs-utils-1.2.3/tests/nsm_client/nsm_client.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/tests/nsm_client/nsm_client.c 2010-11-29 11:18:44.177551833 -0500 ++++ nfs-utils-1.2.3/tests/nsm_client/nsm_client.c 2011-01-14 13:27:17.508607732 -0500 @@ -205,7 +205,7 @@ nsm_client_get_rpcclient(const char *nod { unsigned short port; @@ -707,7 +846,7 @@ diff -up nfs-utils-1.2.3/tests/nsm_client/nsm_client.c.orig nfs-utils-1.2.3/test diff -up nfs-utils-1.2.3/utils/exportfs/exports.man.orig nfs-utils-1.2.3/utils/exportfs/exports.man --- nfs-utils-1.2.3/utils/exportfs/exports.man.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/exportfs/exports.man 2010-11-29 11:18:48.351597145 -0500 ++++ nfs-utils-1.2.3/utils/exportfs/exports.man 2011-01-14 13:27:17.509607935 -0500 @@ -145,7 +145,9 @@ storage (see .IR async above). @@ -740,9 +879,130 @@ diff -up nfs-utils-1.2.3/utils/exportfs/exports.man.orig nfs-utils-1.2.3/utils/e .SS User ID Mapping .PP .B nfsd +diff -up nfs-utils-1.2.3/utils/gssd/gss_util.c.orig nfs-utils-1.2.3/utils/gssd/gss_util.c +--- nfs-utils-1.2.3/utils/gssd/gss_util.c.orig 2010-09-28 08:24:16.000000000 -0400 ++++ nfs-utils-1.2.3/utils/gssd/gss_util.c 2011-01-14 13:27:17.509607936 -0500 +@@ -138,6 +138,83 @@ display_status_1(char *m, u_int32_t code + } + } + #endif ++static char * ++gss_display_error(OM_uint32 status) ++{ ++ char *error = NULL; ++ ++ switch(status) { ++ case GSS_S_COMPLETE: ++ error = "GSS_S_COMPLETE"; ++ break; ++ case GSS_S_CALL_INACCESSIBLE_READ: ++ error = "GSS_S_CALL_INACCESSIBLE_READ"; ++ break; ++ case GSS_S_CALL_INACCESSIBLE_WRITE: ++ error = "GSS_S_CALL_INACCESSIBLE_WRITE"; ++ break; ++ case GSS_S_CALL_BAD_STRUCTURE: ++ error = "GSS_S_CALL_BAD_STRUCTURE"; ++ break; ++ case GSS_S_BAD_MECH: ++ error = "GSS_S_BAD_MECH"; ++ break; ++ case GSS_S_BAD_NAME: ++ error = "GSS_S_BAD_NAME"; ++ break; ++ case GSS_S_BAD_NAMETYPE: ++ error = "GSS_S_BAD_NAMETYPE"; ++ break; ++ case GSS_S_BAD_BINDINGS: ++ error = "GSS_S_BAD_BINDINGS"; ++ break; ++ case GSS_S_BAD_STATUS: ++ error = "GSS_S_BAD_STATUS"; ++ break; ++ case GSS_S_BAD_SIG: ++ error = "GSS_S_BAD_SIG"; ++ break; ++ case GSS_S_NO_CRED: ++ error = "GSS_S_NO_CRED"; ++ break; ++ case GSS_S_NO_CONTEXT: ++ error = "GSS_S_NO_CONTEXT"; ++ break; ++ case GSS_S_DEFECTIVE_TOKEN: ++ error = "GSS_S_DEFECTIVE_TOKEN"; ++ break; ++ case GSS_S_DEFECTIVE_CREDENTIAL: ++ error = "GSS_S_DEFECTIVE_CREDENTIAL"; ++ break; ++ case GSS_S_CREDENTIALS_EXPIRED: ++ error = "GSS_S_CREDENTIALS_EXPIRED"; ++ break; ++ case GSS_S_CONTEXT_EXPIRED: ++ error = "GSS_S_CONTEXT_EXPIRED"; ++ break; ++ case GSS_S_FAILURE: ++ error = "GSS_S_FAILURE"; ++ break; ++ case GSS_S_BAD_QOP: ++ error = "GSS_S_BAD_QOP"; ++ break; ++ case GSS_S_UNAUTHORIZED: ++ error = "GSS_S_UNAUTHORIZED"; ++ break; ++ case GSS_S_UNAVAILABLE: ++ error = "GSS_S_UNAVAILABLE"; ++ break; ++ case GSS_S_DUPLICATE_ELEMENT: ++ error = "GSS_S_DUPLICATE_ELEMENT"; ++ break; ++ case GSS_S_NAME_NOT_MN: ++ error = "GSS_S_NAME_NOT_MN"; ++ break; ++ default: ++ error = "Not defined"; ++ } ++ return error; ++} + + static void + display_status_2(char *m, u_int32_t major, u_int32_t minor, const gss_OID mech) +@@ -175,8 +252,8 @@ display_status_2(char *m, u_int32_t majo + + if (major == GSS_S_CREDENTIALS_EXPIRED) + msg_verbosity = 1; +- printerr(msg_verbosity, "ERROR: GSS-API: error in %s(): %s - %s\n", +- m, maj, min); ++ printerr(msg_verbosity, "ERROR: GSS-API: error in %s(): %s (%s) - %s(%s)\n", ++ m, gss_display_error(major), maj, min); + + if (maj_gss_buf.length != 0) + (void) gss_release_buffer(&min_stat1, &maj_gss_buf); +diff -up nfs-utils-1.2.3/utils/gssd/svcgssd.c.orig nfs-utils-1.2.3/utils/gssd/svcgssd.c +--- nfs-utils-1.2.3/utils/gssd/svcgssd.c.orig 2010-09-28 08:24:16.000000000 -0400 ++++ nfs-utils-1.2.3/utils/gssd/svcgssd.c 2011-01-14 13:27:17.509607936 -0500 +@@ -267,6 +267,7 @@ main(int argc, char *argv[]) + if (!fg) + release_parent(); + ++ nfs4_init_name_mapping(NULL); /* XXX: should only do this once */ + gssd_run(); + printerr(0, "gssd_run returned!\n"); + abort(); +diff -up nfs-utils-1.2.3/utils/gssd/svcgssd_proc.c.orig nfs-utils-1.2.3/utils/gssd/svcgssd_proc.c +--- nfs-utils-1.2.3/utils/gssd/svcgssd_proc.c.orig 2010-09-28 08:24:16.000000000 -0400 ++++ nfs-utils-1.2.3/utils/gssd/svcgssd_proc.c 2011-01-14 13:27:17.510608139 -0500 +@@ -241,7 +241,7 @@ get_ids(gss_name_t client_name, gss_OID + "file for name '%s'\n", sname); + goto out_free; + } +- nfs4_init_name_mapping(NULL); /* XXX: should only do this once */ ++ + res = nfs4_gss_princ_to_ids(secname, sname, &uid, &gid); + if (res < 0) { + /* diff -up nfs-utils-1.2.3/utils/idmapd/idmapd.c.orig nfs-utils-1.2.3/utils/idmapd/idmapd.c --- nfs-utils-1.2.3/utils/idmapd/idmapd.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/idmapd/idmapd.c 2010-11-29 11:18:48.353596932 -0500 ++++ nfs-utils-1.2.3/utils/idmapd/idmapd.c 2011-01-14 13:27:17.513608747 -0500 @@ -158,10 +158,6 @@ static int nfsdopenone(struct idmap_clie static void nfsdreopen_one(struct idmap_client *); static void nfsdreopen(void); @@ -756,7 +1016,7 @@ diff -up nfs-utils-1.2.3/utils/idmapd/idmapd.c.orig nfs-utils-1.2.3/utils/idmapd diff -up nfs-utils-1.2.3/utils/idmapd/Makefile.am.orig nfs-utils-1.2.3/utils/idmapd/Makefile.am --- nfs-utils-1.2.3/utils/idmapd/Makefile.am.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/idmapd/Makefile.am 2010-11-29 11:18:48.352597045 -0500 ++++ nfs-utils-1.2.3/utils/idmapd/Makefile.am 2011-01-14 13:27:17.512608544 -0500 @@ -11,12 +11,8 @@ EXTRA_DIST = \ idmapd.conf @@ -772,7 +1032,7 @@ diff -up nfs-utils-1.2.3/utils/idmapd/Makefile.am.orig nfs-utils-1.2.3/utils/idm diff -up nfs-utils-1.2.3/utils/Makefile.am.orig nfs-utils-1.2.3/utils/Makefile.am --- nfs-utils-1.2.3/utils/Makefile.am.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/Makefile.am 2010-11-29 11:18:48.351597145 -0500 ++++ nfs-utils-1.2.3/utils/Makefile.am 2011-01-14 13:27:17.509607935 -0500 @@ -4,6 +4,9 @@ OPTDIRS = if CONFIG_NFSV4 @@ -785,7 +1045,7 @@ diff -up nfs-utils-1.2.3/utils/Makefile.am.orig nfs-utils-1.2.3/utils/Makefile.a if CONFIG_GSS diff -up nfs-utils-1.2.3/utils/mountd/mountd.c.orig nfs-utils-1.2.3/utils/mountd/mountd.c --- nfs-utils-1.2.3/utils/mountd/mountd.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/mountd/mountd.c 2010-11-29 11:18:48.362595959 -0500 ++++ nfs-utils-1.2.3/utils/mountd/mountd.c 2011-01-14 13:27:17.521610371 -0500 @@ -99,12 +99,9 @@ static int version_any(void) static void unregister_services (void) @@ -812,7 +1072,7 @@ diff -up nfs-utils-1.2.3/utils/mountd/mountd.c.orig nfs-utils-1.2.3/utils/mountd MOUNTVERS, mount_dispatch, port); diff -up nfs-utils-1.2.3/utils/mountd/mountd.man.orig nfs-utils-1.2.3/utils/mountd/mountd.man --- nfs-utils-1.2.3/utils/mountd/mountd.man.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/mountd/mountd.man 2010-11-29 11:18:48.362595959 -0500 ++++ nfs-utils-1.2.3/utils/mountd/mountd.man 2011-01-14 13:27:17.522610574 -0500 @@ -106,11 +106,11 @@ This option can be used to request that .B rpc.mountd do not offer certain versions of NFS. The current version of @@ -830,7 +1090,7 @@ diff -up nfs-utils-1.2.3/utils/mountd/mountd.man.orig nfs-utils-1.2.3/utils/moun Don't advertise TCP for mount. diff -up nfs-utils-1.2.3/utils/mount/fstab.c.orig nfs-utils-1.2.3/utils/mount/fstab.c --- nfs-utils-1.2.3/utils/mount/fstab.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/mount/fstab.c 2010-11-29 11:18:48.354596817 -0500 ++++ nfs-utils-1.2.3/utils/mount/fstab.c 2011-01-14 13:27:17.513608747 -0500 @@ -364,19 +364,22 @@ lock_mtab (void) { /* Repeat until it was us who made the link */ while (!we_created_lockfile) { @@ -888,7 +1148,7 @@ diff -up nfs-utils-1.2.3/utils/mount/fstab.c.orig nfs-utils-1.2.3/utils/mount/fs die (EX_FILEIO, _("Cannot create link %s\n" diff -up nfs-utils-1.2.3/utils/mount/mount_config.h.orig nfs-utils-1.2.3/utils/mount/mount_config.h --- nfs-utils-1.2.3/utils/mount/mount_config.h.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/mount/mount_config.h 2010-11-29 11:18:48.355596703 -0500 ++++ nfs-utils-1.2.3/utils/mount/mount_config.h 2011-01-14 13:27:17.514608950 -0500 @@ -1,7 +1,7 @@ -#ifndef _LINUX_MOUNT__CONFIG_H -#define _LINUX_MOUNT_CONFIG__H @@ -946,7 +1206,7 @@ diff -up nfs-utils-1.2.3/utils/mount/mount_config.h.orig nfs-utils-1.2.3/utils/m +#endif /* _LINUX_MOUNT_CONFIG_H */ diff -up nfs-utils-1.2.3/utils/mount/mount_constants.h.orig nfs-utils-1.2.3/utils/mount/mount_constants.h --- nfs-utils-1.2.3/utils/mount/mount_constants.h.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/mount/mount_constants.h 2010-11-29 11:18:48.355596703 -0500 ++++ nfs-utils-1.2.3/utils/mount/mount_constants.h 2011-01-14 13:27:17.515609153 -0500 @@ -64,4 +64,8 @@ if we have a stack or plain mount - moun #define MS_MGC_MSK 0xffff0000 /* magic flag number mask */ #endif @@ -958,7 +1218,7 @@ diff -up nfs-utils-1.2.3/utils/mount/mount_constants.h.orig nfs-utils-1.2.3/util #endif /* _NFS_UTILS_MOUNT_CONSTANTS_H */ diff -up nfs-utils-1.2.3/utils/mount/mount.c.orig nfs-utils-1.2.3/utils/mount/mount.c --- nfs-utils-1.2.3/utils/mount/mount.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/mount/mount.c 2010-11-29 11:18:48.354596817 -0500 ++++ nfs-utils-1.2.3/utils/mount/mount.c 2011-01-14 13:27:17.514608950 -0500 @@ -209,7 +209,7 @@ static char *fix_opts_string(int flags, } if (flags & MS_USERS) @@ -1063,7 +1323,7 @@ diff -up nfs-utils-1.2.3/utils/mount/mount.c.orig nfs-utils-1.2.3/utils/mount/mo int main(int argc, char *argv[]) diff -up nfs-utils-1.2.3/utils/mount/network.c.orig nfs-utils-1.2.3/utils/mount/network.c --- nfs-utils-1.2.3/utils/mount/network.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/mount/network.c 2010-11-29 11:18:48.357596482 -0500 ++++ nfs-utils-1.2.3/utils/mount/network.c 2011-01-14 13:27:17.516609356 -0500 @@ -59,6 +59,8 @@ #define CONNECT_TIMEOUT (20) #define MOUNT_TIMEOUT (30) @@ -1201,7 +1461,7 @@ diff -up nfs-utils-1.2.3/utils/mount/network.c.orig nfs-utils-1.2.3/utils/mount/ /* diff -up nfs-utils-1.2.3/utils/mount/nfs.man.orig nfs-utils-1.2.3/utils/mount/nfs.man --- nfs-utils-1.2.3/utils/mount/nfs.man.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/mount/nfs.man 2010-11-29 11:18:48.358596373 -0500 ++++ nfs-utils-1.2.3/utils/mount/nfs.man 2011-01-14 13:27:17.518609762 -0500 @@ -69,10 +69,9 @@ for details on specifying raw IPv6 addre .P The @@ -1366,7 +1626,7 @@ diff -up nfs-utils-1.2.3/utils/mount/nfs.man.orig nfs-utils-1.2.3/utils/mount/nf Before 2.4.20, the Linux NFS client used a heuristic diff -up nfs-utils-1.2.3/utils/mount/nfsumount.c.orig nfs-utils-1.2.3/utils/mount/nfsumount.c --- nfs-utils-1.2.3/utils/mount/nfsumount.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/mount/nfsumount.c 2010-11-29 11:18:48.359596267 -0500 ++++ nfs-utils-1.2.3/utils/mount/nfsumount.c 2011-01-14 13:27:17.518609762 -0500 @@ -31,12 +31,16 @@ #include "nls.h" @@ -1531,7 +1791,7 @@ diff -up nfs-utils-1.2.3/utils/mount/nfsumount.c.orig nfs-utils-1.2.3/utils/moun ret = nfs_umount23(spec, "tcp,v3"); diff -up nfs-utils-1.2.3/utils/mount/parse_opt.c.orig nfs-utils-1.2.3/utils/mount/parse_opt.c --- nfs-utils-1.2.3/utils/mount/parse_opt.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/mount/parse_opt.c 2010-11-29 11:18:48.359596267 -0500 ++++ nfs-utils-1.2.3/utils/mount/parse_opt.c 2011-01-14 13:27:17.519609965 -0500 @@ -508,7 +508,7 @@ po_found_t po_get_numeric(struct mount_o int po_rightmost(struct mount_options *options, const char *keys[]) { @@ -1543,7 +1803,7 @@ diff -up nfs-utils-1.2.3/utils/mount/parse_opt.c.orig nfs-utils-1.2.3/utils/moun for (option = options->tail; option; option = option->prev) { diff -up nfs-utils-1.2.3/utils/mount/stropts.c.orig nfs-utils-1.2.3/utils/mount/stropts.c --- nfs-utils-1.2.3/utils/mount/stropts.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/mount/stropts.c 2010-11-29 11:18:48.360596162 -0500 ++++ nfs-utils-1.2.3/utils/mount/stropts.c 2011-01-14 13:27:17.520610168 -0500 @@ -49,10 +49,6 @@ #include "parse_dev.h" #include "conffile.h" @@ -1636,7 +1896,7 @@ diff -up nfs-utils-1.2.3/utils/mount/stropts.c.orig nfs-utils-1.2.3/utils/mount/ ret = nfs_do_mount_v4(mi, ai->ai_addr, ai->ai_addrlen); diff -up nfs-utils-1.2.3/utils/mount/version.h.orig nfs-utils-1.2.3/utils/mount/version.h --- nfs-utils-1.2.3/utils/mount/version.h.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/mount/version.h 2010-11-29 11:18:48.361596059 -0500 ++++ nfs-utils-1.2.3/utils/mount/version.h 2011-01-14 13:27:17.521610371 -0500 @@ -42,9 +42,9 @@ static inline unsigned int linux_version if (uname(&my_utsname)) return 0; @@ -1651,8 +1911,8 @@ diff -up nfs-utils-1.2.3/utils/mount/version.h.orig nfs-utils-1.2.3/utils/mount/ } diff -up nfs-utils-1.2.3/utils/nfsidmap/Makefile.am.orig nfs-utils-1.2.3/utils/nfsidmap/Makefile.am ---- nfs-utils-1.2.3/utils/nfsidmap/Makefile.am.orig 2010-11-29 11:18:48.363595859 -0500 -+++ nfs-utils-1.2.3/utils/nfsidmap/Makefile.am 2010-11-29 11:18:48.363595859 -0500 +--- nfs-utils-1.2.3/utils/nfsidmap/Makefile.am.orig 2011-01-14 13:27:17.523610776 -0500 ++++ nfs-utils-1.2.3/utils/nfsidmap/Makefile.am 2011-01-14 13:27:17.523610776 -0500 @@ -0,0 +1,9 @@ +## Process this file with automake to produce Makefile.in + @@ -1664,8 +1924,8 @@ diff -up nfs-utils-1.2.3/utils/nfsidmap/Makefile.am.orig nfs-utils-1.2.3/utils/n + +MAINTAINERCLEANFILES = Makefile.in diff -up nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.c.orig nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.c ---- nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.c.orig 2010-11-29 11:18:48.363595859 -0500 -+++ nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.c 2010-11-29 11:18:48.363595859 -0500 +--- nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.c.orig 2011-01-14 13:27:17.523610776 -0500 ++++ nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.c 2011-01-14 13:27:17.523610776 -0500 @@ -0,0 +1,118 @@ + +#include @@ -1786,8 +2046,8 @@ diff -up nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.c.orig nfs-utils-1.2.3/utils/nf + return rc; +} diff -up nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.man.orig nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.man ---- nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.man.orig 2010-11-29 11:18:48.364595762 -0500 -+++ nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.man 2010-11-29 11:18:48.364595762 -0500 +--- nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.man.orig 2011-01-14 13:27:17.523610777 -0500 ++++ nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.man 2011-01-14 13:27:17.532612603 -0500 @@ -0,0 +1,60 @@ +.\" +.\"@(#)nfsidmap(8) - The NFS idmapper upcall program @@ -1851,7 +2111,7 @@ diff -up nfs-utils-1.2.3/utils/nfsidmap/nfsidmap.man.orig nfs-utils-1.2.3/utils/ +Bryan Schumaker, diff -up nfs-utils-1.2.3/utils/nfsstat/nfsstat.c.orig nfs-utils-1.2.3/utils/nfsstat/nfsstat.c --- nfs-utils-1.2.3/utils/nfsstat/nfsstat.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/nfsstat/nfsstat.c 2010-11-29 11:18:48.365595665 -0500 ++++ nfs-utils-1.2.3/utils/nfsstat/nfsstat.c 2011-01-14 13:27:17.532612603 -0500 @@ -46,7 +46,7 @@ static unsigned int cltproc3info[CLTPROC static unsigned int srvproc4info[SRVPROC4_SZ+2], srvproc4info_old[SRVPROC4_SZ+2]; /* NFSv4 call counts ([0] == 2) */ @@ -2113,7 +2373,7 @@ diff -up nfs-utils-1.2.3/utils/nfsstat/nfsstat.c.orig nfs-utils-1.2.3/utils/nfss has_rpcstats(const unsigned int *info, int size) diff -up nfs-utils-1.2.3/utils/nfsstat/nfsstat.man.orig nfs-utils-1.2.3/utils/nfsstat/nfsstat.man --- nfs-utils-1.2.3/utils/nfsstat/nfsstat.man.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/nfsstat/nfsstat.man 2010-11-29 11:18:48.366595571 -0500 ++++ nfs-utils-1.2.3/utils/nfsstat/nfsstat.man 2011-01-14 13:27:17.541614429 -0500 @@ -30,10 +30,12 @@ Print only NFS v2 statistics. The defaul about the versions of \fBNFS\fR that have non-zero counts. .TP @@ -2131,7 +2391,7 @@ diff -up nfs-utils-1.2.3/utils/nfsstat/nfsstat.man.orig nfs-utils-1.2.3/utils/nf Print information about each of the mounted \fBNFS\fR file systems. diff -up nfs-utils-1.2.3/utils/statd/hostname.c.orig nfs-utils-1.2.3/utils/statd/hostname.c --- nfs-utils-1.2.3/utils/statd/hostname.c.orig 2010-09-28 08:24:16.000000000 -0400 -+++ nfs-utils-1.2.3/utils/statd/hostname.c 2010-11-29 11:18:48.366595571 -0500 ++++ nfs-utils-1.2.3/utils/statd/hostname.c 2011-01-14 13:27:17.541614430 -0500 @@ -39,10 +39,6 @@ #include "statd.h" #include "xlog.h" @@ -2144,20 +2404,21 @@ diff -up nfs-utils-1.2.3/utils/statd/hostname.c.orig nfs-utils-1.2.3/utils/statd * statd_present_address - convert sockaddr to presentation address * @sap: pointer to socket address to convert diff -up nfs-utils-1.2.3/utils/statd/sm-notify.c.orig nfs-utils-1.2.3/utils/statd/sm-notify.c ---- nfs-utils-1.2.3/utils/statd/sm-notify.c.orig 2010-11-29 11:17:26.908868990 -0500 -+++ nfs-utils-1.2.3/utils/statd/sm-notify.c 2010-11-29 11:18:48.367595478 -0500 -@@ -37,10 +37,6 @@ +--- nfs-utils-1.2.3/utils/statd/sm-notify.c.orig 2011-01-14 13:22:07.100643922 -0500 ++++ nfs-utils-1.2.3/utils/statd/sm-notify.c 2011-01-14 13:27:17.543614834 -0500 +@@ -37,8 +37,9 @@ #include "nsm.h" #include "nfsrpc.h" -#ifndef HAVE_DECL_AI_ADDRCONFIG -#define AI_ADDRCONFIG 0 --#endif -- - #define NSM_TIMEOUT 2 - #define NSM_MAX_TIMEOUT 120 /* don't make this too big */ ++/* glibc before 2.3.4 */ ++#ifndef AI_NUMERICSERV ++#define AI_NUMERICSERV 0 + #endif -@@ -81,7 +77,6 @@ smn_lookup(const char *name) + #define NSM_TIMEOUT 2 +@@ -81,7 +82,6 @@ smn_lookup(const char *name) { struct addrinfo *ai = NULL; struct addrinfo hint = { @@ -2165,3 +2426,11 @@ diff -up nfs-utils-1.2.3/utils/statd/sm-notify.c.orig nfs-utils-1.2.3/utils/stat .ai_family = (nsm_family == AF_INET ? AF_INET: AF_UNSPEC), .ai_protocol = (int)IPPROTO_UDP, }; +@@ -257,6 +257,7 @@ smn_bind_address(const char *srcaddr, co + if (srcaddr == NULL) + hint.ai_flags |= AI_PASSIVE; + ++ /* Do not allow "node" and "service" parameters both to be NULL */ + if (srcport == NULL) + error = getaddrinfo(srcaddr, "", &hint, &ai); + else diff --git a/nfs-utils.spec b/nfs-utils.spec index ecddac1..41969a9 100644 --- a/nfs-utils.spec +++ b/nfs-utils.spec @@ -2,7 +2,7 @@ Summary: NFS utilities and supporting clients and daemons for the kernel NFS ser Name: nfs-utils URL: http://sourceforge.net/projects/nfs Version: 1.2.3 -Release: 6%{?dist} +Release: 7%{?dist} Epoch: 1 # group all 32bit related archs @@ -17,7 +17,7 @@ Source13: rpcgssd.init Source14: rpcsvcgssd.init Source15: nfs.sysconfig -Patch001: nfs-utils-1.2.4-rc4.patch +Patch001: nfs-utils-1.2.4-rc5.patch Patch100: nfs-utils-1.2.1-statdpath-man.patch Patch101: nfs-utils-1.2.2-statdpath.patch @@ -253,6 +253,9 @@ fi %attr(4755,root,root) /sbin/umount.nfs4 %changelog +* Fri Jan 14 2011 Steve Dickson 1.2.3-7 +- Updated to latest upstream release: nfs-utils-1-2-4-rc5 + * Mon Dec 13 2010 Steve Dickson 1.2.3-6 - Updated to latest upstream release: nfs-utils-1-2-4-rc4