diff options
-rw-r--r-- | source4/aclocal.m4 | 13 | ||||
-rw-r--r-- | source4/auth/config.m4 | 2 | ||||
-rw-r--r-- | source4/build/m4/rewrite.m4 | 90 | ||||
-rw-r--r-- | source4/build/tests/ftruncate.c | 27 | ||||
-rw-r--r-- | source4/build/tests/getgroups.c | 66 | ||||
-rw-r--r-- | source4/configure.ac | 4 | ||||
-rw-r--r-- | source4/lib/util/capability.c | 12 | ||||
-rw-r--r-- | source4/lib/util/fault.m4 | 2 | ||||
-rw-r--r-- | source4/lib/util/signal.m4 | 1 | ||||
-rw-r--r-- | source4/lib/util/util.m4 | 1 | ||||
-rw-r--r-- | source4/ntvfs/unixuid/config.m4 | 1 | ||||
-rw-r--r-- | source4/smbd/process_thread.c | 2 |
12 files changed, 14 insertions, 207 deletions
diff --git a/source4/aclocal.m4 b/source4/aclocal.m4 index 9c7b4e85c1..522ac7c425 100644 --- a/source4/aclocal.m4 +++ b/source4/aclocal.m4 @@ -1,16 +1,3 @@ -dnl test whether dirent has a d_off member -AC_DEFUN(AC_DIRENT_D_OFF, -[AC_CACHE_CHECK([for d_off in dirent], ac_cv_dirent_d_off, -[AC_TRY_COMPILE([ -#include <unistd.h> -#include <sys/types.h> -#include <dirent.h>], [struct dirent d; d.d_off;], -ac_cv_dirent_d_off=yes, ac_cv_dirent_d_off=no)]) -if test $ac_cv_dirent_d_off = yes; then - AC_DEFINE(HAVE_DIRENT_D_OFF,1,[Whether dirent has a d_off member]) -fi -]) - dnl AC_PROG_CC_FLAG(flag) AC_DEFUN(AC_PROG_CC_FLAG, [AC_CACHE_CHECK(whether ${CC-cc} accepts -$1, ac_cv_prog_cc_$1, diff --git a/source4/auth/config.m4 b/source4/auth/config.m4 index 2bf37dc855..f6500cc1e7 100644 --- a/source4/auth/config.m4 +++ b/source4/auth/config.m4 @@ -15,3 +15,5 @@ SMB_EXT_LIB(PAM, $PAM_LIBS) AC_CHECK_LIB_EXT(crypt, CRYPT_LIBS, crypt) SMB_ENABLE(CRYPT,YES) SMB_EXT_LIB(CRYPT, $CRYPT_LIBS) + +AC_CHECK_FUNCS(crypt16 getauthuid getpwanam) diff --git a/source4/build/m4/rewrite.m4 b/source4/build/m4/rewrite.m4 index cca933b8da..99d4bb177a 100644 --- a/source4/build/m4/rewrite.m4 +++ b/source4/build/m4/rewrite.m4 @@ -1,6 +1,3 @@ -dnl Checks for programs. -dnl Unique-to-Samba variables we'll be playing with. - AC_SYS_LARGEFILE # @@ -40,8 +37,7 @@ case "$host_os" in esac -AC_CHECK_HEADERS(stdarg.h string.h ) - +AC_CHECK_HEADERS(stdarg.h string.h) AC_TYPE_SIGNAL AC_TYPE_UID_T @@ -50,7 +46,6 @@ AC_TYPE_OFF_T AC_TYPE_SIZE_T AC_TYPE_PID_T AC_STRUCT_ST_RDEV -AC_DIRENT_D_OFF AC_CHECK_TYPE(ino_t,unsigned) AC_CHECK_TYPE(loff_t,off_t) AC_CHECK_TYPE(offset_t,loff_t) @@ -58,88 +53,7 @@ AC_CHECK_TYPES(long long) AC_FUNC_MEMCMP -AC_CHECK_FUNCS(setsid pipe crypt16 getauthuid) -AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction) -AC_CHECK_FUNCS(setgroups sysconf getpwanam srandom random srand rand usleep) -AC_CHECK_FUNCS(backtrace setbuffer) - -AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[ -AC_TRY_RUN([ -#include <sys/types.h> -#include <fcntl.h> -#ifndef F_GETLEASE -#define F_GETLEASE 1025 -#endif -main() { - int fd = open("/dev/null", O_RDONLY); - return fcntl(fd, F_GETLEASE, 0) == -1; -} -], -samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)]) -if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then - AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks]) -fi - -AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[ -AC_TRY_RUN([ -#include <sys/types.h> -#include <fcntl.h> -#include <signal.h> -#ifndef F_NOTIFY -#define F_NOTIFY 1026 -#endif -main() { - exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0); -} -], -samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)]) -if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then - AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes]) -fi - -AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[ -AC_TRY_RUN([ -#include <sys/types.h> -#include <fcntl.h> -#include <signal.h> -#include <sys/file.h> -#ifndef LOCK_MAND -#define LOCK_MAND 32 -#define LOCK_READ 64 -#endif -main() { - exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0); -} -], -samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)]) -if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then - AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes]) -fi - -AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[ -AC_TRY_COMPILE([#include <sys/types.h> -#include <fcntl.h>], -[oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;], -samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)]) -if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then - AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available]) -fi - - -AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[ -AC_TRY_RUN([#include "${srcdir-.}/build/tests/ftruncate.c"], - samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)]) -if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then - AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend]) -fi - -AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[ -AC_TRY_RUN([#include <unistd.h> -main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }], -samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)]) -if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then - AC_DEFINE(SYSCONF_SC_NGROUPS_MAX,1,[Whether sysconf(_SC_NGROUPS_MAX) is available]) -fi +AC_CHECK_FUNCS(pipe strftime srandom random srand rand usleep setbuffer) AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[ AC_TRY_RUN([#include "${srcdir-.}/build/tests/shared_mmap.c"], diff --git a/source4/build/tests/ftruncate.c b/source4/build/tests/ftruncate.c deleted file mode 100644 index e71b29fd83..0000000000 --- a/source4/build/tests/ftruncate.c +++ /dev/null @@ -1,27 +0,0 @@ -/* test whether ftruncate() can extend a file */ - -#if defined(HAVE_UNISTD_H) -#include <unistd.h> -#endif - -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> - -#define DATA "conftest.trunc" -#define LEN 7663 - -main() -{ - int *buf; - int fd = open(DATA,O_RDWR|O_CREAT|O_TRUNC,0666); - - ftruncate(fd, LEN); - - unlink(DATA); - - if (lseek(fd, 0, SEEK_END) == LEN) { - exit(0); - } - exit(1); -} diff --git a/source4/build/tests/getgroups.c b/source4/build/tests/getgroups.c deleted file mode 100644 index 343fd5a184..0000000000 --- a/source4/build/tests/getgroups.c +++ /dev/null @@ -1,66 +0,0 @@ -/* this tests whether getgroups actually returns lists of integers - rather than gid_t. The test only works if the user running - the test is in at least 1 group - - The test is designed to check for those broken OSes that define - getgroups() as returning an array of gid_t but actually return a - array of ints! Ultrix is one culprit - */ - -#if defined(HAVE_UNISTD_H) -#include <unistd.h> -#endif - -#include <sys/types.h> -#include <stdio.h> -#include <unistd.h> -#include <grp.h> - -main() -{ - int i; - int *igroups; - char *cgroups; - int grp = 0; - int ngroups = getgroups(0,&grp); - - if (sizeof(gid_t) == sizeof(int)) { - fprintf(stderr,"gid_t and int are the same size\n"); - exit(1); - } - - if (ngroups <= 0) - ngroups = 32; - - igroups = (int *)malloc(sizeof(int)*ngroups); - - for (i=0;i<ngroups;i++) - igroups[i] = 0x42424242; - - ngroups = getgroups(ngroups,(gid_t *)igroups); - - if (igroups[0] == 0x42424242) - ngroups = 0; - - if (ngroups == 0) { - printf("WARNING: can't determine getgroups return type\n"); - exit(1); - } - - cgroups = (char *)igroups; - - if (ngroups == 1 && - cgroups[2] == 0x42 && cgroups[3] == 0x42) { - fprintf(stderr,"getgroups returns gid_t\n"); - exit(1); - } - - for (i=0;i<ngroups;i++) { - if (igroups[i] == 0x42424242) { - fprintf(stderr,"getgroups returns gid_t\n"); - exit(1); - } - } - - exit(0); -} diff --git a/source4/configure.ac b/source4/configure.ac index 9d5119c523..c5d1b361fa 100644 --- a/source4/configure.ac +++ b/source4/configure.ac @@ -18,6 +18,9 @@ sinclude(lib/smbreadline/readline.m4) sinclude(include/system/config.m4) sinclude(build/m4/rewrite.m4) sinclude(heimdal_build/config.m4) +sinclude(lib/util/fault.m4) +sinclude(lib/util/signal.m4) +sinclude(lib/util/util.m4) sinclude(lib/util/fsusage.m4) sinclude(lib/util/capability.m4) sinclude(lib/util/time.m4) @@ -41,6 +44,7 @@ sinclude(lib/registry/config.m4) sinclude(scripting/swig/config.m4) sinclude(gtk/config.m4) sinclude(ntvfs/posix/config.m4) +sinclude(ntvfs/unixuid/config.m4) sinclude(lib/socket_wrapper/config.m4) sinclude(web_server/config.m4) sinclude(auth/config.m4) diff --git a/source4/lib/util/capability.c b/source4/lib/util/capability.c index 683bc99723..7d8222fe11 100644 --- a/source4/lib/util/capability.c +++ b/source4/lib/util/capability.c @@ -102,15 +102,3 @@ static BOOL set_inherited_process_capability( uint32_t cap_flag, BOOL enable ) return True; } #endif - -/** - Gain the oplock capability from the kernel if possible. -**/ - -_PUBLIC_ void oplock_set_capability(BOOL this_process, BOOL inherit) -{ -#if HAVE_KERNEL_OPLOCKS_IRIX - set_process_capability(KERNEL_OPLOCK_CAPABILITY,this_process); - set_inherited_process_capability(KERNEL_OPLOCK_CAPABILITY,inherit); -#endif -} diff --git a/source4/lib/util/fault.m4 b/source4/lib/util/fault.m4 new file mode 100644 index 0000000000..6d2c4f2a6a --- /dev/null +++ b/source4/lib/util/fault.m4 @@ -0,0 +1,2 @@ +AC_CHECK_HEADER(execinfo.h) +AC_CHECK_FUNCS(backtrace) diff --git a/source4/lib/util/signal.m4 b/source4/lib/util/signal.m4 new file mode 100644 index 0000000000..c6d7f72f68 --- /dev/null +++ b/source4/lib/util/signal.m4 @@ -0,0 +1 @@ +AC_CHECK_FUNCS(sigprocmask sigblock sigaction) diff --git a/source4/lib/util/util.m4 b/source4/lib/util/util.m4 new file mode 100644 index 0000000000..9e362954cd --- /dev/null +++ b/source4/lib/util/util.m4 @@ -0,0 +1 @@ +AC_CHECK_FUNCS(setsid) diff --git a/source4/ntvfs/unixuid/config.m4 b/source4/ntvfs/unixuid/config.m4 new file mode 100644 index 0000000000..cb870d9e16 --- /dev/null +++ b/source4/ntvfs/unixuid/config.m4 @@ -0,0 +1 @@ +AC_CHECK_FUNCS(setgroups) diff --git a/source4/smbd/process_thread.c b/source4/smbd/process_thread.c index 93c6d45225..65b3a59d09 100644 --- a/source4/smbd/process_thread.c +++ b/source4/smbd/process_thread.c @@ -368,7 +368,7 @@ static int thread_rwlock_unlock(smb_rwlock_t *rwlock, const char *name) } /***************************************************************** - Log suspicious usage (primarily for possible thread-unsafe behavior. + Log suspicious usage (primarily for possible thread-unsafe behavior). *****************************************************************/ static void thread_log_suspicious_usage(const char* from, const char* info) { |