The Samba-Bugzilla – Attachment 4131 Details for
Bug 6330
DFS doesn't work on AIX
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed patch.
0001-Fix-bug-6330-DFS-doesn-t-work-on-AIX.patch (text/plain), 2.33 KB, created by
Jeremy Allison
on 2009-05-08 13:34:19 UTC
(
hide
)
Description:
Proposed patch.
Filename:
MIME Type:
Creator:
Jeremy Allison
Created:
2009-05-08 13:34:19 UTC
Size:
2.33 KB
patch
obsolete
>From 13741f915ab178de1794b44ddce6373aeec548aa Mon Sep 17 00:00:00 2001 >From: Jeremy Allison <jra@samba.org> >Date: Fri, 8 May 2009 11:31:34 -0700 >Subject: [PATCH] Fix bug #6330 - DFS doesn't work on AIX. > Jeremy. > >--- > source3/configure.in | 10 ++++++++++ > source3/smbd/msdfs.c | 4 ++++ > tests/readlink.c | 33 +++++++++++++++++++++++++++++++++ > 3 files changed, 47 insertions(+), 0 deletions(-) > create mode 100644 tests/readlink.c > >diff --git a/source3/configure.in b/source3/configure.in >index 68474b1..a869216 100644 >--- a/source3/configure.in >+++ b/source3/configure.in >@@ -5700,6 +5700,16 @@ fi > > AC_HAVE_DECL(splice, [#include <fcntl.h>]) > >+############################################ >+# 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 7bd32e8..efbc05c 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; > >diff --git a/tests/readlink.c b/tests/readlink.c >new file mode 100644 >index 0000000..a07e62a >--- /dev/null >+++ b/tests/readlink.c >@@ -0,0 +1,33 @@ >+/* test whether readlink returns a short buffer correctly. */ >+ >+#if defined(HAVE_UNISTD_H) >+#include <unistd.h> >+#endif >+ >+#include <sys/types.h> >+#include <sys/stat.h> >+#include <fcntl.h> >+ >+#define DATA "readlink.test" >+#define FNAME "rdlnk.file" >+ >+main() >+{ >+ int buf[7]; >+ int ret; >+ ssize_t rl_ret; >+ >+ unlink(FNAME); >+ ret = symlink(DATA, FNAME); >+ if (ret == -1) { >+ exit(1); >+ } >+ >+ rl_ret = readlink(FNAME, buf, sizeof(buf)); >+ if (rl_ret == -1) { >+ unlink(FNAME); >+ exit(1); >+ } >+ unlink(FNAME); >+ exit(0); >+} >-- >1.5.4.3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 6330
: 4131