diff --git a/aclocal/kerberos5.m4 b/aclocal/kerberos5.m4 index faa5804..bf0e88b 100644 --- a/aclocal/kerberos5.m4 +++ b/aclocal/kerberos5.m4 @@ -42,7 +42,9 @@ AC_DEFUN([AC_KERBEROS_V5],[ -f $dir/lib32/libgssapi_krb5.a -o \ -f $dir/lib32/libgssapi_krb5.so -o \ -f $dir/lib64/libgssapi_krb5.a -o \ - -f $dir/lib64/libgssapi_krb5.so \) ; then + -f $dir/lib64/libgssapi_krb5.so -o \ + -f $dir/lib/$(uname -m)-linux-gnu/libgssapi_krb5.a -o \ + -f $dir/lib/$(uname -m)-linux-gnu/libgssapi_krb5.so \) ; then AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries]) KRBDIR="$dir" gssapi_lib=gssapi_krb5 diff --git a/configure.ac b/configure.ac index 9ba9d4b..949ff9f 100644 --- a/configure.ac +++ b/configure.ac @@ -510,6 +510,7 @@ AC_TYPE_PID_T AC_TYPE_SIZE_T AC_HEADER_TIME AC_STRUCT_TM +AC_CHECK_TYPES([struct file_handle]) dnl ************************************************************* dnl Check for functions diff --git a/support/junction/junction.c b/support/junction/junction.c index ab6caa6..41cce26 100644 --- a/support/junction/junction.c +++ b/support/junction/junction.c @@ -23,6 +23,10 @@ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt */ +#ifdef HAVE_CONFIG_H +#include +#endif + #include #include diff --git a/support/junction/xml.c b/support/junction/xml.c index 7005e95..813110b 100644 --- a/support/junction/xml.c +++ b/support/junction/xml.c @@ -327,7 +327,7 @@ junction_parse_xml_read(const char *pathname, int fd, const char *name, if (retval != FEDFS_OK) return retval; - xlog(D_CALL, "%s: XML document contained in junction:\n%ld.%s", + xlog(D_CALL, "%s: XML document contained in junction:\n%zu.%s", __func__, len, (char *)buf); retval = junction_parse_xml_buf(pathname, name, buf, len, doc); diff --git a/support/misc/file.c b/support/misc/file.c index e7c3819..06f6bb2 100644 --- a/support/misc/file.c +++ b/support/misc/file.c @@ -18,6 +18,10 @@ * along with nfs-utils. If not, see . */ +#ifdef HAVE_CONFIG_H +#include +#endif + #include #include diff --git a/support/misc/mountpoint.c b/support/misc/mountpoint.c index c6217f2..14d6731 100644 --- a/support/misc/mountpoint.c +++ b/support/misc/mountpoint.c @@ -3,6 +3,10 @@ * check if a given path is a mountpoint */ +#ifdef HAVE_CONFIG_H +#include +#endif + #include #include "xcommon.h" #include diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c index 9dc4cf1..7c4cf37 100644 --- a/support/nfs/cacheio.c +++ b/support/nfs/cacheio.c @@ -15,6 +15,10 @@ * */ +#ifdef HAVE_CONFIG_H +#include +#endif + #include #include #include diff --git a/support/nfs/nfs_mntent.c b/support/nfs/nfs_mntent.c index 05a4c68..25e5944 100644 --- a/support/nfs/nfs_mntent.c +++ b/support/nfs/nfs_mntent.c @@ -9,7 +9,7 @@ */ #include -#include /* for index */ +#include /* for strchr */ #include /* for isdigit */ #include /* for umask */ #include /* for ftruncate */ @@ -176,7 +176,7 @@ nfs_getmntent (mntFILE *mfp) { return NULL; mfp->mntent_lineno++; - s = index (buf, '\n'); + s = strchr (buf, '\n'); if (s == NULL) { /* Missing final newline? Otherwise extremely */ /* long line - assume file was corrupted */ @@ -184,7 +184,7 @@ nfs_getmntent (mntFILE *mfp) { fprintf(stderr, _("[mntent]: warning: no final " "newline at the end of %s\n"), mfp->mntent_file); - s = index (buf, 0); + s = strchr (buf, 0); } else { mfp->mntent_errs = 1; goto err; diff --git a/tools/locktest/testlk.c b/tools/locktest/testlk.c index b392f71..ea51f78 100644 --- a/tools/locktest/testlk.c +++ b/tools/locktest/testlk.c @@ -81,7 +81,7 @@ main(int argc, char **argv) if (fl.l_type == F_UNLCK) { printf("%s: no conflicting lock\n", fname); } else { - printf("%s: conflicting lock by %d on (%ld;%ld)\n", + printf("%s: conflicting lock by %d on (%zd;%zd)\n", fname, fl.l_pid, fl.l_start, fl.l_len); } return 0; diff --git a/utils/mount/error.c b/utils/mount/error.c index 562f312..986f066 100644 --- a/utils/mount/error.c +++ b/utils/mount/error.c @@ -62,7 +62,7 @@ static int rpc_strerror(int spos) char *tmp; if (estr) { - if ((ptr = index(estr, ':'))) + if ((ptr = strchr(estr, ':'))) estr = ++ptr; tmp = &errbuf[spos]; diff --git a/utils/mount/fstab.c b/utils/mount/fstab.c index eedbdda..146d8f4 100644 --- a/utils/mount/fstab.c +++ b/utils/mount/fstab.c @@ -7,6 +7,10 @@ * - Moved code to nfs-utils/support/nfs from util-linux/mount. */ +#ifdef HAVE_CONFIG_H +#include +#endif + #include #include #include @@ -57,7 +61,7 @@ mtab_does_not_exist(void) { return var_mtab_does_not_exist; } -static int +int mtab_is_a_symlink(void) { get_mtab_info(); return var_mtab_is_a_symlink; diff --git a/utils/mount/fstab.h b/utils/mount/fstab.h index 313bf9b..8676c8c 100644 --- a/utils/mount/fstab.h +++ b/utils/mount/fstab.h @@ -7,6 +7,7 @@ #define _PATH_FSTAB "/etc/fstab" #endif +int mtab_is_a_symlink(void); int mtab_is_writable(void); int mtab_does_not_exist(void); void reset_mtab_info(void); diff --git a/utils/mount/mount.c b/utils/mount/mount.c index 91f1087..2be3dc2 100644 --- a/utils/mount/mount.c +++ b/utils/mount/mount.c @@ -204,6 +204,13 @@ create_mtab (void) { int flags; mntFILE *mfp; + /* Avoid writing if the mtab is a symlink to /proc/mounts, since + that would create a file /proc/mounts in case the proc filesystem + is not mounted, and the fchmod below would also fail. */ + if (mtab_is_a_symlink()) { + return; + } + lock_mtab(); mfp = nfs_setmntent (MOUNTED, "a+"); diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index 3861f84..e5186c7 100644 --- a/utils/mountd/cache.c +++ b/utils/mountd/cache.c @@ -221,7 +221,7 @@ static void auth_unix_gid(int f) xlog(L_ERROR, "auth_unix_gid: error writing reply"); } -#if USE_BLKID +#ifdef USE_BLKID static const char *get_uuid_blkdev(char *path) { /* We set *safe if we know that we need the @@ -446,7 +446,7 @@ static int same_path(char *child, char *parent, int len) if (count_slashes(p) != count_slashes(parent)) return 0; -#if HAVE_NAME_TO_HANDLE_AT +#if defined(HAVE_NAME_TO_HANDLE_AT) && defined(HAVE_STRUCT_FILE_HANDLE) struct { struct file_handle fh; unsigned char handle[128]; diff --git a/utils/mountd/fsloc.c b/utils/mountd/fsloc.c index cf42944..1b869b6 100644 --- a/utils/mountd/fsloc.c +++ b/utils/mountd/fsloc.c @@ -128,7 +128,7 @@ static struct servers *method_list(char *data) bool v6esc = false; xlog(L_NOTICE, "method_list(%s)", data); - for (ptr--, listsize=1; ptr; ptr=index(ptr, ':'), listsize++) + for (ptr--, listsize=1; ptr; ptr=strchr(ptr, ':'), listsize++) ptr++; list = malloc(listsize * sizeof(char *)); copy = strdup(data); diff --git a/utils/nfsdcld/legacy.c b/utils/nfsdcld/legacy.c index 07f477a..3c6bea6 100644 --- a/utils/nfsdcld/legacy.c +++ b/utils/nfsdcld/legacy.c @@ -15,6 +15,10 @@ * Boston, MA 02110-1301, USA. */ +#ifdef HAVE_CONFIG_H +#include +#endif + #include #include #include diff --git a/utils/nfsdcld/nfsdcld.c b/utils/nfsdcld/nfsdcld.c index b064336..9297df5 100644 --- a/utils/nfsdcld/nfsdcld.c +++ b/utils/nfsdcld/nfsdcld.c @@ -378,7 +378,7 @@ cld_not_implemented(struct cld_client *clnt) bsize = cld_message_size(cmsg); wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); if (wsize != bsize) - xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", + xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", __func__, wsize); /* reopen pipe, just to be sure */ @@ -409,7 +409,7 @@ cld_get_version(struct cld_client *clnt) xlog(D_GENERAL, "Doing downcall with status %d", cmsg->cm_status); wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); if (wsize != bsize) { - xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", + xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", __func__, wsize); ret = cld_pipe_open(clnt); if (ret) { @@ -459,7 +459,7 @@ reply: xlog(D_GENERAL, "Doing downcall with status %d", cmsg->cm_status); wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); if (wsize != bsize) { - xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", + xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", __func__, wsize); ret = cld_pipe_open(clnt); if (ret) { @@ -498,7 +498,7 @@ reply: cmsg->cm_status); wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); if (wsize != bsize) { - xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", + xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", __func__, wsize); ret = cld_pipe_open(clnt); if (ret) { @@ -548,7 +548,7 @@ reply: cmsg->cm_status); wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); if (wsize != bsize) { - xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", + xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", __func__, wsize); ret = cld_pipe_open(clnt); if (ret) { @@ -607,7 +607,7 @@ reply: xlog(D_GENERAL, "Doing downcall with status %d", cmsg->cm_status); wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); if (wsize != bsize) { - xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", + xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", __func__, wsize); ret = cld_pipe_open(clnt); if (ret) { @@ -667,7 +667,7 @@ reply: xlog(D_GENERAL, "Doing downcall with status %d", cmsg->cm_status); wsize = atomicio((void *)write, clnt->cl_fd, cmsg, bsize); if (wsize != bsize) { - xlog(L_ERROR, "%s: problem writing to cld pipe (%ld): %m", + xlog(L_ERROR, "%s: problem writing to cld pipe (%zd): %m", __func__, wsize); ret = cld_pipe_open(clnt); if (ret) { diff --git a/utils/nfsdcld/sqlite.c b/utils/nfsdcld/sqlite.c index 23be797..09518e2 100644 --- a/utils/nfsdcld/sqlite.c +++ b/utils/nfsdcld/sqlite.c @@ -512,7 +512,7 @@ sqlite_startup_query_grace(void) current_epoch = tcur; recovery_epoch = trec; ret = 0; - xlog(D_GENERAL, "%s: current_epoch=%lu recovery_epoch=%lu", + xlog(D_GENERAL, "%s: current_epoch=%"PRIu64" recovery_epoch=%"PRIu64, __func__, current_epoch, recovery_epoch); out: sqlite3_finalize(stmt); @@ -1223,7 +1223,7 @@ sqlite_grace_start(void) current_epoch = tcur; recovery_epoch = trec; - xlog(D_GENERAL, "%s: current_epoch=%lu recovery_epoch=%lu", + xlog(D_GENERAL, "%s: current_epoch=%"PRIu64" recovery_epoch=%"PRIu64, __func__, current_epoch, recovery_epoch); out: @@ -1282,7 +1282,7 @@ sqlite_grace_done(void) } recovery_epoch = 0; - xlog(D_GENERAL, "%s: current_epoch=%lu recovery_epoch=%lu", + xlog(D_GENERAL, "%s: current_epoch=%"PRIu64" recovery_epoch=%"PRIu64, __func__, current_epoch, recovery_epoch); out: