From 3d6f4a7af7b91d9f9ac9fd0b00af63bb23e371f7 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 8 May 2009 11:31:34 -0700 Subject: Fix bug #6330 - DFS doesn't work on AIX. Jeremy. --- source3/configure.in | 10 ++++++++++ source3/smbd/msdfs.c | 4 ++++ 2 files changed, 14 insertions(+) (limited to 'source3') diff --git a/source3/configure.in b/source3/configure.in index b532372bfd..b6cdcc86ad 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -5703,6 +5703,16 @@ fi AC_HAVE_DECL(splice, [#include ]) +############################################ +# See if we have the a broken readlink syscall. + +AC_CACHE_CHECK([for a broken readlink syscall],samba_cv_HAVE_BROKEN_READLINK,[ +AC_TRY_RUN([#include "${srcdir-.}/../tests/readlink.c"], + samba_cv_HAVE_BROKEN_READLINK=no,samba_cv_HAVE_BROKEN_READLINK=yes,samba_cv_HAVE_BROKEN_READLINK=cross) +]) +if test x"$samba_cv_HAVE_BROKEN_READLINK" = x"yes"; then + AC_DEFINE(HAVE_BROKEN_READLINK,1,[Whether the readlink syscall is broken]) +fi ################################################# # Check whether winbind is supported on this platform. If so we need to diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c index 7bd32e8280..efbc05ceb0 100644 --- a/source3/smbd/msdfs.c +++ b/source3/smbd/msdfs.c @@ -413,7 +413,11 @@ static bool is_msdfs_link_internal(TALLOC_CTX *ctx, { SMB_STRUCT_STAT st; int referral_len = 0; +#if defined(HAVE_BROKEN_READLINK) + char link_target_buf[PATH_MAX]; +#else char link_target_buf[7]; +#endif size_t bufsize = 0; char *link_target = NULL; -- cgit