summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/client/client.c8
-rw-r--r--source3/client/clitar.c6
-rwxr-xr-xsource3/configure4
-rw-r--r--source3/configure.in4
-rw-r--r--source3/groupdb/aliasdb.c8
-rw-r--r--source3/groupdb/aliasfile.c3
-rw-r--r--source3/groupdb/groupfile.c5
-rw-r--r--source3/include/config.h.in6
-rw-r--r--source3/include/proto.h46
-rw-r--r--source3/lib/charset.c2
-rw-r--r--source3/lib/debug.c8
-rw-r--r--source3/lib/genrand.c4
-rw-r--r--source3/lib/kanji.c14
-rw-r--r--source3/lib/pidfile.c4
-rw-r--r--source3/lib/smbrun.c2
-rw-r--r--source3/lib/system.c62
-rw-r--r--source3/lib/username.c2
-rw-r--r--source3/lib/util.c6
-rw-r--r--source3/lib/util_file.c2
-rw-r--r--source3/lib/util_str.c70
-rw-r--r--source3/libsmb/namequery.c2
-rw-r--r--source3/locking/locking_slow.c5
-rw-r--r--source3/locking/shmem.c10
-rw-r--r--source3/nmbd/nmbd_namelistdb.c2
-rw-r--r--source3/nmbd/nmbd_serverlistdb.c2
-rw-r--r--source3/nmbd/nmbd_synclists.c4
-rw-r--r--source3/nmbd/nmbd_winsserver.c4
-rw-r--r--source3/param/params.c2
-rw-r--r--source3/passdb/passdb.c10
-rw-r--r--source3/passdb/smbpass.c8
-rw-r--r--source3/passdb/smbpasschange.c2
-rw-r--r--source3/passdb/smbpassfile.c4
-rw-r--r--source3/passdb/smbpassgroup.c5
-rw-r--r--source3/printing/pcap.c8
-rw-r--r--source3/printing/printing.c2
-rw-r--r--source3/rpc_server/srv_samr.c6
-rw-r--r--source3/rpc_server/srv_sid.c4
-rwxr-xr-xsource3/script/installman.sh2
-rw-r--r--source3/smbd/chgpasswd.c6
-rw-r--r--source3/smbd/connection.c6
-rw-r--r--source3/smbd/groupname.c4
-rw-r--r--source3/smbd/ipc.c6
-rw-r--r--source3/smbd/message.c2
-rw-r--r--source3/smbd/open.c4
-rw-r--r--source3/smbd/oplock.c2
-rw-r--r--source3/smbd/password.c2
-rw-r--r--source3/smbd/quotas.c4
-rw-r--r--source3/smbwrapper/shared.c2
-rw-r--r--source3/smbwrapper/smbw.c2
-rw-r--r--source3/utils/make_printerdef.c2
-rw-r--r--source3/utils/make_smbcodepage.c8
-rw-r--r--source3/utils/status.c2
-rw-r--r--source3/utils/testprns.c2
-rw-r--r--source3/web/cgi.c4
-rw-r--r--source3/web/statuspage.c4
-rw-r--r--source3/web/swat.c6
56 files changed, 238 insertions, 178 deletions
diff --git a/source3/client/client.c b/source3/client/client.c
index 8356d99b7b..c4c269293b 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -496,7 +496,7 @@ static void do_get(char *rname,char *lname)
if(!strcmp(lname,"-")) {
handle = fileno(stdout);
} else {
- handle = open(lname,O_WRONLY|O_CREAT|O_TRUNC,0644);
+ handle = sys_open(lname,O_WRONLY|O_CREAT|O_TRUNC,0644);
newhandle = True;
}
if (handle < 0) {
@@ -818,7 +818,7 @@ static void do_put(char *rname,char *lname)
f = stdin;
/* size of file is not known */
} else {
- f = fopen(lname,"r");
+ f = sys_fopen(lname,"r");
}
if (!f) {
@@ -982,7 +982,7 @@ static void cmd_mput(void)
"/bin/ls %s > %s",p,tmpname);
system(cmd);
- f = fopen(tmpname,"r");
+ f = sys_fopen(tmpname,"r");
if (!f) continue;
while (!feof(f)) {
@@ -1787,7 +1787,7 @@ static void get_password_file(void)
sscanf(p, "%d", &fd);
close_it = False;
} else if ((p = getenv("PASSWD_FILE")) != NULL) {
- fd = open(p, O_RDONLY);
+ fd = sys_open(p, O_RDONLY, 0);
pstrcpy(spec, p);
if (fd < 0) {
fprintf(stderr, "Error opening PASSWD_FILE %s: %s\n",
diff --git a/source3/client/clitar.c b/source3/client/clitar.c
index e7915d1066..a2b23817f5 100644
--- a/source3/client/clitar.c
+++ b/source3/client/clitar.c
@@ -1539,7 +1539,7 @@ static int read_inclusion_file(char *filename)
clipn = 0;
buf[MAXPATHLEN] = '\0'; /* guarantee null-termination */
- if ((inclusion = fopen(filename, "r")) == NULL) {
+ if ((inclusion = sys_fopen(filename, "r")) == NULL) {
/* XXX It would be better to include a reason for failure, but without
* autoconf, it's hard to use strerror, sys_errlist, etc.
*/
@@ -1823,8 +1823,8 @@ int tar_parseargs(int argc, char *argv[], char *Optarg, int Optind)
}
tarhandle=-1;
} else
- if ((tar_type=='x' && (tarhandle = open(argv[Optind], O_RDONLY)) == -1)
- || (tar_type=='c' && (tarhandle=creat(argv[Optind], 0644)) < 0))
+ if ((tar_type=='x' && (tarhandle = sys_open(argv[Optind], O_RDONLY, 0)) == -1)
+ || (tar_type=='c' && (tarhandle=sys_creat(argv[Optind], 0644)) < 0))
{
DEBUG(0,("Error opening local file %s - %s\n",
argv[Optind], strerror(errno)));
diff --git a/source3/configure b/source3/configure
index 0ec5ebb0b3..1d5779bf34 100755
--- a/source3/configure
+++ b/source3/configure
@@ -3769,7 +3769,7 @@ else
fi
done
-for ac_func in setuidx setgroups mktime rename ftruncate stat64 fstat64 lstat64
+for ac_func in setuidx setgroups mktime rename ftruncate stat64 fstat64 lstat64 fopen64
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3776: checking for $ac_func" >&5
@@ -3934,7 +3934,7 @@ else
fi
done
-for ac_func in srandom random srand rand setenv
+for ac_func in srandom random srand rand setenv mmap64
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3941: checking for $ac_func" >&5
diff --git a/source3/configure.in b/source3/configure.in
index 55fe56fe9e..f555087ddf 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -168,10 +168,10 @@ AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync execl bzero memset)
AC_CHECK_FUNCS(memmove vsnprintf snprintf setsid glob strpbrk pipe crypt16 getauthuid)
AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr)
AC_CHECK_FUNCS(initgroups select rdchk getgrnam pathconf putprpwnam)
-AC_CHECK_FUNCS(setuidx setgroups mktime rename ftruncate stat64 fstat64 lstat64)
+AC_CHECK_FUNCS(setuidx setgroups mktime rename ftruncate stat64 fstat64 lstat64 fopen64)
AC_CHECK_FUNCS(set_auth_parameters atexit grantpt getspnam dup2 lseek64 ftruncate64)
AC_CHECK_FUNCS(fseek64 ftell64 bigcrypt getprpwnam setluid yp_get_default_domain getpwanam)
-AC_CHECK_FUNCS(srandom random srand rand setenv)
+AC_CHECK_FUNCS(srandom random srand rand setenv mmap64)
# syscall() is needed for smbwrapper.
AC_CHECK_FUNCS(syscall)
diff --git a/source3/groupdb/aliasdb.c b/source3/groupdb/aliasdb.c
index e5e6ebfa53..03e0a6e11a 100644
--- a/source3/groupdb/aliasdb.c
+++ b/source3/groupdb/aliasdb.c
@@ -191,14 +191,14 @@ static BOOL user_is_member(char *user_name, LOCAL_GRP_MEMBER *mem, int num_mem)
*************************************************************************/
BOOL iterate_getuseraliasnam(char *user_name, LOCAL_GRP **alss, int *num_alss)
{
- LOCAL_GRP *als;
+ LOCAL_GRP *als = NULL;
LOCAL_GRP_MEMBER *mem = NULL;
int num_mem = 0;
void *fp = NULL;
DEBUG(10, ("search for useralias by name: %s\n", user_name));
- if (user_name == NULL || als == NULL || num_alss == NULL)
+ if (user_name == NULL || alss == NULL || num_alss == NULL)
{
return False;
}
@@ -254,12 +254,12 @@ BOOL iterate_getuseraliasnam(char *user_name, LOCAL_GRP **alss, int *num_alss)
*************************************************************************/
BOOL enumdomaliases(LOCAL_GRP **alss, int *num_alss)
{
- LOCAL_GRP *als;
+ LOCAL_GRP *als = NULL;
void *fp = NULL;
DEBUG(10, ("enum user aliases\n"));
- if (als == NULL || num_alss == NULL)
+ if (alss == NULL || num_alss == NULL)
{
return False;
}
diff --git a/source3/groupdb/aliasfile.c b/source3/groupdb/aliasfile.c
index fc87b47c47..01166bcc1f 100644
--- a/source3/groupdb/aliasfile.c
+++ b/source3/groupdb/aliasfile.c
@@ -176,14 +176,13 @@ static LOCAL_GRP *getalsfilepwent(void *vp, LOCAL_GRP_MEMBER **mem, int *num_mem
pstring linebuf;
char *p;
- size_t linebuf_len;
aldb_init_als(&al_buf);
/*
* Scan the file, a line at a time and check if the name matches.
*/
- while ((linebuf_len = getfileline(vp, linebuf, sizeof(linebuf))) > 0)
+ while (getfileline(vp, linebuf, sizeof(linebuf)) > 0)
{
/* get alias name */
diff --git a/source3/groupdb/groupfile.c b/source3/groupdb/groupfile.c
index 8044071391..09939de71e 100644
--- a/source3/groupdb/groupfile.c
+++ b/source3/groupdb/groupfile.c
@@ -135,7 +135,7 @@ static char *get_group_members(char *p, int *num_mem, DOMAIN_GRP_MEMBER **member
uint8 type;
BOOL found = False;
- if (isdigit(name))
+ if (isdigit(name[0]))
{
uint32 rid = get_number(name);
sid_copy(&sid, &global_sam_sid);
@@ -180,14 +180,13 @@ static DOMAIN_GRP *getgrpfilepwent(void *vp, DOMAIN_GRP_MEMBER **mem, int *num_m
pstring linebuf;
char *p;
- size_t linebuf_len;
gpdb_init_grp(&gp_buf);
/*
* Scan the file, a line at a time and check if the name matches.
*/
- while ((linebuf_len = getfileline(vp, linebuf, sizeof(linebuf))) > 0)
+ while (getfileline(vp, linebuf, sizeof(linebuf)) > 0)
{
/* get group name */
diff --git a/source3/include/config.h.in b/source3/include/config.h.in
index 49379cfe9c..c5c761ede3 100644
--- a/source3/include/config.h.in
+++ b/source3/include/config.h.in
@@ -390,6 +390,9 @@
/* Define if you have the execl function. */
#undef HAVE_EXECL
+/* Define if you have the fopen64 function. */
+#undef HAVE_FOPEN64
+
/* Define if you have the fseek64 function. */
#undef HAVE_FSEEK64
@@ -465,6 +468,9 @@
/* Define if you have the mktime function. */
#undef HAVE_MKTIME
+/* Define if you have the mmap64 function. */
+#undef HAVE_MMAP64
+
/* Define if you have the open64 function. */
#undef HAVE_OPEN64
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 329903f787..d68853b5e6 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -198,6 +198,10 @@ int sys_ftruncate(int fd, SMB_OFF_T offset);
SMB_OFF_T sys_lseek(int fd, SMB_OFF_T offset, int whence);
int sys_fseek(FILE *fp, SMB_OFF_T offset, int whence);
SMB_OFF_T sys_ftell(FILE *fp);
+int sys_creat(const char *path, mode_t mode);
+int sys_open(const char *path, int oflag, mode_t mode);
+FILE *sys_fopen(const char *path, const char *type);
+void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, SMB_OFF_T offset);
int dos_unlink(char *fname);
int dos_open(char *fname,int flags,mode_t mode);
DIR *dos_opendir(char *dname);
@@ -383,35 +387,35 @@ char *client_addr(int fd);
/*The following definitions come from lib/util_str.c */
void set_first_token(char *ptr);
-BOOL next_token(char **ptr,char *buff,char *sep, int bufsize);
+BOOL next_token(char **ptr,char *buff,char *sep, size_t bufsize);
char **toktocliplist(int *ctok, char *sep);
int StrCaseCmp(const char *s, const char *t);
-int StrnCaseCmp(char *s, char *t, int n);
+int StrnCaseCmp(const char *s, const char *t, size_t n);
BOOL strequal(const char *s1, const char *s2);
-BOOL strnequal(char *s1,char *s2,int n);
-BOOL strcsequal(char *s1,char *s2);
+BOOL strnequal(const char *s1,const char *s2,size_t n);
+BOOL strcsequal(const char *s1,const char *s2);
void strlower(char *s);
void strupper(char *s);
void strnorm(char *s);
BOOL strisnormal(char *s);
void string_replace(char *s,char oldc,char newc);
-char *skip_string(char *buf,int n);
-size_t str_charnum(char *s);
-BOOL trim_string(char *s,char *front,char *back);
-BOOL strhasupper(char *s);
-BOOL strhaslower(char *s);
-int count_chars(char *s,char c);
-char *safe_strcpy(char *dest,const char *src, int maxlength);
-char *safe_strcat(char *dest, char *src, int maxlength);
-char *StrCpy(char *dest,char *src);
-char *StrnCpy(char *dest,const char *src,int n);
-char *strncpyn(char *dest, const char *src,int n, char c);
-int strhex_to_str(char *p, int len, const char *strhex);
+char *skip_string(const char *buf,size_t n);
+size_t str_charnum(const char *s);
+BOOL trim_string(char *s,const char *front,const char *back);
+BOOL strhasupper(const char *s);
+BOOL strhaslower(const char *s);
+size_t count_chars(const char *s,char c);
+char *safe_strcpy(char *dest,const char *src, size_t maxlength);
+char *safe_strcat(char *dest, const char *src, size_t maxlength);
+char *StrCpy(char *dest,const char *src);
+char *StrnCpy(char *dest,const char *src,size_t n);
+char *strncpyn(char *dest, const char *src,size_t n, char c);
+size_t strhex_to_str(char *p, size_t len, const char *strhex);
BOOL in_list(char *s,char *list,BOOL casesensitive);
-BOOL string_init(char **dest,char *src);
+BOOL string_init(char **dest,const char *src);
void string_free(char **s);
-BOOL string_set(char **dest,char *src);
-BOOL string_sub(char *s,char *pattern,char *insert);
+BOOL string_set(char **dest,const char *src);
+BOOL string_sub(char *s,const char *pattern,const char *insert);
void split_at_last_component(char *path, char *front, char sep, char *back);
/*The following definitions come from lib/util_unistr.c */
@@ -1266,8 +1270,8 @@ struct sam_disp_info *pwdb_sam_to_dispinfo(struct sam_passwd *user);
struct smb_passwd *pwdb_sam_to_smb(struct sam_passwd *user);
struct sam_passwd *pwdb_smb_to_sam(struct smb_passwd *user);
char *pwdb_encode_acct_ctrl(uint16 acct_ctrl, size_t length);
-uint16 pwdb_decode_acct_ctrl(char *p);
-time_t pwdb_get_last_set_time(char *p);
+uint16 pwdb_decode_acct_ctrl(const char *p);
+time_t pwdb_get_last_set_time(const char *p);
void pwdb_set_logon_time(char *p, int max_len, time_t t);
void pwdb_set_logoff_time(char *p, int max_len, time_t t);
void pwdb_set_kickoff_time(char *p, int max_len, time_t t);
diff --git a/source3/lib/charset.c b/source3/lib/charset.c
index 5bf3bfbe30..fc2924a155 100644
--- a/source3/lib/charset.c
+++ b/source3/lib/charset.c
@@ -235,7 +235,7 @@ code page file (size=%d).\n", codepage_file_name, (int)size));
is held in little endian format.
*/
- if((fp = fopen( codepage_file_name, "r")) == NULL)
+ if((fp = sys_fopen( codepage_file_name, "r")) == NULL)
{
DEBUG(0,("load_client_codepage: cannot open file %s. Error was %s\n",
codepage_file_name, strerror(errno)));
diff --git a/source3/lib/debug.c b/source3/lib/debug.c
index 619a917747..3a90da2f3d 100644
--- a/source3/lib/debug.c
+++ b/source3/lib/debug.c
@@ -224,9 +224,9 @@ void reopen_logs( void )
if( dbf )
(void)fclose( dbf );
if( append_log )
- dbf = fopen( debugf, "a" );
+ dbf = sys_fopen( debugf, "a" );
else
- dbf = fopen( debugf, "w" );
+ dbf = sys_fopen( debugf, "w" );
/* Fix from klausr@ITAP.Physik.Uni-Stuttgart.De
* to fix problem where smbd's that generate less
* than 100 messages keep growing the log.
@@ -331,9 +331,9 @@ va_dcl
mode_t oldumask = umask( 022 );
if( append_log )
- dbf = fopen( debugf, "a" );
+ dbf = sys_fopen( debugf, "a" );
else
- dbf = fopen( debugf, "w" );
+ dbf = sys_fopen( debugf, "w" );
(void)umask( oldumask );
if( dbf )
{
diff --git a/source3/lib/genrand.c b/source3/lib/genrand.c
index bb1922e4f5..8b05b02f94 100644
--- a/source3/lib/genrand.c
+++ b/source3/lib/genrand.c
@@ -36,7 +36,7 @@ static void do_filehash(char *fname, unsigned char *hash)
unsigned char tmp_md4[16];
int fd, n;
- fd = open(fname,O_RDONLY);
+ fd = sys_open(fname,O_RDONLY,0);
if (fd == -1) return;
while ((n = read(fd, (char *)buf, sizeof(buf))) > 0) {
@@ -121,7 +121,7 @@ static uint32 do_reseed(unsigned char *md4_outbuf)
memset(md4_inbuf, '\0', sizeof(md4_inbuf));
- fd = open( "/dev/random", O_RDONLY);
+ fd = sys_open( "/dev/random", O_RDONLY,0);
if(fd >= 0) {
/*
* We can use /dev/random !
diff --git a/source3/lib/kanji.c b/source3/lib/kanji.c
index 565e8d852f..871a4a059c 100644
--- a/source3/lib/kanji.c
+++ b/source3/lib/kanji.c
@@ -54,12 +54,12 @@ char *(*multibyte_strtok)(char *, const char *) = (char *(*)(char *, const char
* charcnv.c.
*/
-static int skip_non_multibyte_char(char);
+static size_t skip_non_multibyte_char(char);
static BOOL not_multibyte_char_1(char);
char *(*_dos_to_unix)(char *, BOOL) = dos2unix_format;
char *(*_unix_to_dos)(char *, BOOL) = unix2dos_format;
-int (*_skip_multibyte_char)(char) = skip_non_multibyte_char;
+size_t (*_skip_multibyte_char)(char) = skip_non_multibyte_char;
BOOL (*is_multibyte_char_1)(char) = not_multibyte_char_1;
#else /* KANJI */
@@ -70,12 +70,12 @@ BOOL (*is_multibyte_char_1)(char) = not_multibyte_char_1;
*/
static char *sj_to_sj(char *from, BOOL overwrite);
-static int skip_kanji_multibyte_char(char);
+static size_t skip_kanji_multibyte_char(char);
static BOOL is_kanji_multibyte_char_1(char);
char *(*_dos_to_unix)(char *, BOOL) = sj_to_sj;
char *(*_unix_to_dos)(char *, BOOL) = sj_to_sj;
-int (*_skip_multibyte_char)(char) = skip_kanji_multibyte_char;
+size_t (*_skip_multibyte_char)(char) = skip_kanji_multibyte_char;
int (*is_multibyte_char_1)(char) = is_kanji_multibyte_char_1;
#endif /* KANJI */
@@ -198,7 +198,7 @@ static const char *sj_strrchr(const char *s, int c)
Kanji multibyte char skip function.
*******************************************************************/
-static int skip_kanji_multibyte_char(char c)
+static size_t skip_kanji_multibyte_char(char c)
{
if(is_shift_jis(c)) {
return 2;
@@ -364,7 +364,7 @@ static const char *generic_multibyte_strrchr(const char *s, int c)
Generic multibyte char skip function.
*******************************************************************/
-static int skip_generic_multibyte_char(char c)
+static size_t skip_generic_multibyte_char(char c)
{
if( (*is_multibyte_char_1)(c)) {
return 2;
@@ -1143,7 +1143,7 @@ void interpret_coding_system(char *str)
Non multibyte char function.
*******************************************************************/
-static int skip_non_multibyte_char(char c)
+static size_t skip_non_multibyte_char(char c)
{
return 0;
}
diff --git a/source3/lib/pidfile.c b/source3/lib/pidfile.c
index 7e98438dba..52a3be875f 100644
--- a/source3/lib/pidfile.c
+++ b/source3/lib/pidfile.c
@@ -38,7 +38,7 @@ pid_t pidfile_pid(char *name)
slprintf(pidFile, sizeof(pidFile)-1, "%s/%s.pid", lp_lockdir(), name);
- f = fopen(pidFile, "r");
+ f = sys_fopen(pidFile, "r");
if (!f) {
return 0;
}
@@ -71,7 +71,7 @@ void pidfile_create(char *name)
exit(1);
}
- fd = open(pidFile, O_NONBLOCK | O_CREAT | O_WRONLY, 0644);
+ fd = sys_open(pidFile, O_NONBLOCK | O_CREAT | O_WRONLY, 0644);
if (fd < 0) {
DEBUG(0,("ERROR: can't open %s: Error was %s\n", pidFile,
strerror(errno)));
diff --git a/source3/lib/smbrun.c b/source3/lib/smbrun.c
index 86d7cf9e03..da7632a67a 100644
--- a/source3/lib/smbrun.c
+++ b/source3/lib/smbrun.c
@@ -58,7 +58,7 @@ static BOOL setup_stdout_file(char *outfile,BOOL shared)
flags = O_RDWR;
}
/* now create the file */
- fd = open(outfile,flags,mode);
+ fd = sys_open(outfile,flags,mode);
if (fd == -1) return False;
diff --git a/source3/lib/system.c b/source3/lib/system.c
index deca7e1b6a..d07df3faf0 100644
--- a/source3/lib/system.c
+++ b/source3/lib/system.c
@@ -231,6 +231,62 @@ SMB_OFF_T sys_ftell(FILE *fp)
}
/*******************************************************************
+ A creat() wrapper that will deal with 64 bit filesizes.
+********************************************************************/
+
+int sys_creat(const char *path, mode_t mode)
+{
+#if defined(HAVE_CREAT64)
+ return creat64(path, mode);
+#else
+ /*
+ * If creat64 isn't defined then ensure we call a potential open64.
+ * JRA.
+ */
+ return sys_open(path, O_WRONLY | O_CREAT | O_TRUNC, mode);
+#endif
+}
+
+/*******************************************************************
+ An open() wrapper that will deal with 64 bit filesizes.
+********************************************************************/
+
+int sys_open(const char *path, int oflag, mode_t mode)
+{
+#if defined(HAVE_OPEN64)
+ return open64(path, oflag, mode);
+#else
+ return open(path, oflag, mode);
+#endif
+}
+
+/*******************************************************************
+ An fopen() wrapper that will deal with 64 bit filesizes.
+********************************************************************/
+
+FILE *sys_fopen(const char *path, const char *type)
+{
+#if defined(HAVE_FOPEN64)
+ return fopen64(path, type);
+#else
+ return fopen(path, type);
+#endif
+}
+
+/*******************************************************************
+ An mmap() wrapper that will deal with 64 bit filesizes.
+********************************************************************/
+
+void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, SMB_OFF_T offset)
+{
+#if defined(LARGE_SMB_OFF_T) && defined(HAVE_MMAP64)
+ return mmap64(addr, len, prot, flags, fd, offset);
+#else
+ return mmap(addr, len, prot, flags, fd, offset);
+#endif
+}
+
+/*******************************************************************
just a unlink wrapper that calls dos_to_unix.
********************************************************************/
int dos_unlink(char *fname)
@@ -244,7 +300,7 @@ a simple open() wrapper that calls dos_to_unix.
********************************************************************/
int dos_open(char *fname,int flags,mode_t mode)
{
- return(open(dos_to_unix(fname,False),flags,mode));
+ return(sys_open(dos_to_unix(fname,False),flags,mode));
}
@@ -345,10 +401,10 @@ static int copy_reg(char *source, const char *dest)
if (unlink (dest) && errno != ENOENT)
return 1;
- if((ifd = open (source, O_RDONLY, 0)) < 0)
+ if((ifd = sys_open (source, O_RDONLY, 0)) < 0)
return 1;
- if((ofd = open (dest, O_WRONLY | O_CREAT | O_TRUNC, 0600)) < 0 )
+ if((ofd = sys_open (dest, O_WRONLY | O_CREAT | O_TRUNC, 0600)) < 0 )
{
close (ifd);
return 1;
diff --git a/source3/lib/username.c b/source3/lib/username.c
index f56f7efce2..f04314ab36 100644
--- a/source3/lib/username.c
+++ b/source3/lib/username.c
@@ -80,7 +80,7 @@ BOOL map_username(char *user)
return True;
}
- f = fopen(mapfile,"r");
+ f = sys_fopen(mapfile,"r");
if (!f) {
DEBUG(0,("can't open username map %s\n",mapfile));
return False;
diff --git a/source3/lib/util.c b/source3/lib/util.c
index df3faa569a..7247e95c64 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -1059,8 +1059,8 @@ void close_low_fds(void)
/* try and use up these file descriptors, so silly
library routines writing to stdout etc won't cause havoc */
for (i=0;i<3;i++) {
- fd = open("/dev/null",O_RDWR,0);
- if (fd < 0) fd = open("/dev/null",O_WRONLY,0);
+ fd = sys_open("/dev/null",O_RDWR,0);
+ if (fd < 0) fd = sys_open("/dev/null",O_WRONLY,0);
if (fd < 0) {
DEBUG(0,("Can't open /dev/null\n"));
return;
@@ -1705,7 +1705,7 @@ void become_daemon(void)
setsid();
#elif defined(TIOCNOTTY)
{
- int i = open("/dev/tty", O_RDWR);
+ int i = sys_open("/dev/tty", O_RDWR, 0);
if (i != -1) {
ioctl(i, (int) TIOCNOTTY, (char *)0);
close(i);
diff --git a/source3/lib/util_file.c b/source3/lib/util_file.c
index 0d6e77b010..faceed1dbd 100644
--- a/source3/lib/util_file.c
+++ b/source3/lib/util_file.c
@@ -125,7 +125,7 @@ void *startfilepwent(char *pfile, char *s_readbuf, int bufsize,
}
DEBUG(10, ("startfilepwent: opening file %s\n", pfile));
- fp = fopen(pfile, update ? "r+b" : "rb");
+ fp = sys_fopen(pfile, update ? "r+b" : "rb");
if (fp == NULL) {
DEBUG(0, ("startfilepwent: unable to open file %s\n", pfile));
diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c
index 02fa892d7b..c943a854cf 100644
--- a/source3/lib/util_str.c
+++ b/source3/lib/util_str.c
@@ -36,11 +36,11 @@ void set_first_token(char *ptr)
Based on a routine by GJC@VILLAGE.COM.
Extensively modified by Andrew.Tridgell@anu.edu.au
****************************************************************************/
-BOOL next_token(char **ptr,char *buff,char *sep, int bufsize)
+BOOL next_token(char **ptr,char *buff,char *sep, size_t bufsize)
{
char *s;
BOOL quoted;
- int len=1;
+ size_t len=1;
if (!ptr) ptr = &last_ptr;
if (!ptr) return(False);
@@ -188,7 +188,7 @@ int StrCaseCmp(const char *s, const char *t)
/*******************************************************************
case insensitive string compararison, length limited
********************************************************************/
-int StrnCaseCmp(char *s, char *t, int n)
+int StrnCaseCmp(const char *s, const char *t, size_t n)
{
/* compare until we run out of string, either t or s, or chars */
/* We *must* use toupper rather than tolower here due to the
@@ -283,7 +283,7 @@ BOOL strequal(const char *s1, const char *s2)
/*******************************************************************
compare 2 strings up to and including the nth char.
******************************************************************/
-BOOL strnequal(char *s1,char *s2,int n)
+BOOL strnequal(const char *s1,const char *s2,size_t n)
{
if (s1 == s2) return(True);
if (!s1 || !s2 || !n) return(False);
@@ -294,7 +294,7 @@ BOOL strnequal(char *s1,char *s2,int n)
/*******************************************************************
compare 2 strings (case sensitive)
********************************************************************/
-BOOL strcsequal(char *s1,char *s2)
+BOOL strcsequal(const char *s1,const char *s2)
{
if (s1 == s2) return(True);
if (!s1 || !s2) return(False);
@@ -343,7 +343,7 @@ void strlower(char *s)
else
#endif /* KANJI_WIN95_COMPATIBILITY */
{
- int skip = skip_multibyte_char( *s );
+ size_t skip = skip_multibyte_char( *s );
if( skip != 0 )
s += skip;
else
@@ -396,7 +396,7 @@ void strupper(char *s)
else
#endif /* KANJI_WIN95_COMPATIBILITY */
{
- int skip = skip_multibyte_char( *s );
+ size_t skip = skip_multibyte_char( *s );
if( skip != 0 )
s += skip;
else
@@ -439,7 +439,7 @@ BOOL strisnormal(char *s)
****************************************************************************/
void string_replace(char *s,char oldc,char newc)
{
- int skip;
+ size_t skip;
while (*s)
{
skip = skip_multibyte_char( *s );
@@ -458,11 +458,11 @@ void string_replace(char *s,char oldc,char newc)
/*******************************************************************
skip past some strings in a buffer
********************************************************************/
-char *skip_string(char *buf,int n)
+char *skip_string(const char *buf,size_t n)
{
while (n--)
buf += strlen(buf) + 1;
- return(buf);
+ return((char *)buf);
}
/*******************************************************************
@@ -472,7 +472,7 @@ char *skip_string(char *buf,int n)
16.oct.98, jdblair@cobaltnet.com.
********************************************************************/
-size_t str_charnum(char *s)
+size_t str_charnum(const char *s)
{
size_t len = 0;
@@ -488,7 +488,7 @@ size_t str_charnum(char *s)
trim the specified elements off the front and back of a string
********************************************************************/
-BOOL trim_string(char *s,char *front,char *back)
+BOOL trim_string(char *s,const char *front,const char *back)
{
BOOL ret = False;
size_t front_len = (front && *front) ? strlen(front) : 0;
@@ -584,7 +584,7 @@ BOOL trim_string(char *s,char *front,char *back)
/****************************************************************************
does a string have any uppercase chars in it?
****************************************************************************/
-BOOL strhasupper(char *s)
+BOOL strhasupper(const char *s)
{
while (*s)
{
@@ -615,7 +615,7 @@ BOOL strhasupper(char *s)
else
#endif /* KANJI_WIN95_COMPATIBILITY */
{
- int skip = skip_multibyte_char( *s );
+ size_t skip = skip_multibyte_char( *s );
if( skip != 0 )
s += skip;
else {
@@ -631,7 +631,7 @@ BOOL strhasupper(char *s)
/****************************************************************************
does a string have any lowercase chars in it?
****************************************************************************/
-BOOL strhaslower(char *s)
+BOOL strhaslower(const char *s)
{
while (*s)
{
@@ -670,7 +670,7 @@ BOOL strhaslower(char *s)
else
#endif /* KANJI_WIN95_COMPATIBILITY */
{
- int skip = skip_multibyte_char( *s );
+ size_t skip = skip_multibyte_char( *s );
if( skip != 0 )
s += skip;
else {
@@ -686,9 +686,9 @@ BOOL strhaslower(char *s)
/****************************************************************************
find the number of chars in a string
****************************************************************************/
-int count_chars(char *s,char c)
+size_t count_chars(const char *s,char c)
{
- int count=0;
+ size_t count=0;
#if !defined(KANJI_WIN95_COMPATIBILITY)
/*
@@ -720,7 +720,7 @@ int count_chars(char *s,char c)
{
while (*s)
{
- int skip = skip_multibyte_char( *s );
+ size_t skip = skip_multibyte_char( *s );
if( skip != 0 )
s += skip;
else {
@@ -739,9 +739,9 @@ int count_chars(char *s,char c)
safe string copy into a known length string. maxlength does not
include the terminating zero.
********************************************************************/
-char *safe_strcpy(char *dest,const char *src, int maxlength)
+char *safe_strcpy(char *dest,const char *src, size_t maxlength)
{
- int len;
+ size_t len;
if (!dest) {
DEBUG(0,("ERROR: NULL dest in safe_strcpy\n"));
@@ -770,9 +770,9 @@ char *safe_strcpy(char *dest,const char *src, int maxlength)
safe string cat into a string. maxlength does not
include the terminating zero.
********************************************************************/
-char *safe_strcat(char *dest, char *src, int maxlength)
+char *safe_strcat(char *dest, const char *src, size_t maxlength)
{
- int src_len, dest_len;
+ size_t src_len, dest_len;
if (!dest) {
DEBUG(0,("ERROR: NULL dest in safe_strcat\n"));
@@ -800,7 +800,7 @@ char *safe_strcat(char *dest, char *src, int maxlength)
/****************************************************************************
this is a safer strcpy(), meant to prevent core dumps when nasty things happen
****************************************************************************/
-char *StrCpy(char *dest,char *src)
+char *StrCpy(char *dest,const char *src)
{
char *d = dest;
@@ -819,7 +819,7 @@ char *StrCpy(char *dest,char *src)
/****************************************************************************
like strncpy but always null terminates. Make sure there is room!
****************************************************************************/
-char *StrnCpy(char *dest,const char *src,int n)
+char *StrnCpy(char *dest,const char *src,size_t n)
{
char *d = dest;
if (!dest) return(NULL);
@@ -837,10 +837,10 @@ char *StrnCpy(char *dest,const char *src,int n)
like strncpy but copies up to the character marker. always null terminates.
returns a pointer to the character marker in the source string (src).
****************************************************************************/
-char *strncpyn(char *dest, const char *src,int n, char c)
+char *strncpyn(char *dest, const char *src,size_t n, char c)
{
char *p;
- int str_len;
+ size_t str_len;
p = strchr(src, c);
if (p == NULL)
@@ -866,10 +866,10 @@ char *strncpyn(char *dest, const char *src,int n, char c)
valid examples: "0A5D15"; "0x15, 0x49, 0xa2"; "59\ta9\te3\n"
**************************************************************/
-int strhex_to_str(char *p, int len, const char *strhex)
+size_t strhex_to_str(char *p, size_t len, const char *strhex)
{
- int i;
- int num_chars = 0;
+ size_t i;
+ size_t num_chars = 0;
unsigned char lonybble, hinybble;
char *hexchars = "0123456789ABCDEF";
char *p1 = NULL, *p2 = NULL;
@@ -935,9 +935,9 @@ static char *null_string = NULL;
/****************************************************************************
set a string value, allocing the space for the string
****************************************************************************/
-BOOL string_init(char **dest,char *src)
+BOOL string_init(char **dest,const char *src)
{
- int l;
+ size_t l;
if (!src)
src = "";
@@ -983,7 +983,7 @@ void string_free(char **s)
set a string value, allocing the space for the string, and deallocating any
existing space
****************************************************************************/
-BOOL string_set(char **dest,char *src)
+BOOL string_set(char **dest,const char *src)
{
string_free(dest);
@@ -999,11 +999,11 @@ insert. It may do multiple replacements.
return True if a substitution was done.
****************************************************************************/
-BOOL string_sub(char *s,char *pattern,char *insert)
+BOOL string_sub(char *s,const char *pattern,const char *insert)
{
BOOL ret = False;
char *p;
- int ls,lp,li;
+ size_t ls,lp,li;
if (!insert || !pattern || !s) return(False);
diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c
index 1398f7bc49..149b977746 100644
--- a/source3/libsmb/namequery.c
+++ b/source3/libsmb/namequery.c
@@ -332,7 +332,7 @@ struct in_addr *name_query(int fd,const char *name,int name_type, BOOL bcast,BOO
FILE *startlmhosts(char *fname)
{
- FILE *fp = fopen(fname,"r");
+ FILE *fp = sys_fopen(fname,"r");
if (!fp) {
DEBUG(4,("startlmhosts: Can't open lmhosts file %s. Error was %s\n",
fname, strerror(errno)));
diff --git a/source3/locking/locking_slow.c b/source3/locking/locking_slow.c
index f1e0fa2149..7c27355224 100644
--- a/source3/locking/locking_slow.c
+++ b/source3/locking/locking_slow.c
@@ -165,8 +165,7 @@ static BOOL slow_lock_share_entry(connection_struct *conn,
{
SMB_STRUCT_STAT dummy_stat;
- fd = (int)open(fname,read_only?O_RDONLY:(O_RDWR|O_CREAT),
- SHARE_FILE_MODE);
+ fd = sys_open(fname,read_only?O_RDONLY:(O_RDWR|O_CREAT), SHARE_FILE_MODE);
if(fd < 0)
{
@@ -1008,7 +1007,7 @@ static int slow_share_forall(void (*fn)(share_mode_entry *, char *))
pstrcat(lname,"/");
pstrcat(lname,s);
- fd = open(lname,read_only?O_RDONLY:O_RDWR,0);
+ fd = sys_open(lname,read_only?O_RDONLY:O_RDWR,0);
if (fd < 0) {
continue;
}
diff --git a/source3/locking/shmem.c b/source3/locking/shmem.c
index 2a4e4de129..435c0d4c78 100644
--- a/source3/locking/shmem.c
+++ b/source3/locking/shmem.c
@@ -318,7 +318,7 @@ static BOOL smb_shm_register_process(char *processreg_file, pid_t pid, BOOL *oth
SMB_OFF_T free_slot = -1;
SMB_OFF_T erased_slot;
- smb_shm_processes_fd = open(processreg_file,
+ smb_shm_processes_fd = sys_open(processreg_file,
read_only?O_RDONLY:(O_RDWR|O_CREAT),
SHM_FILE_MODE);
@@ -429,7 +429,7 @@ static BOOL smb_shm_unregister_process(char *processreg_file, pid_t pid)
BOOL found = False;
- smb_shm_processes_fd = open(processreg_file, O_RDWR);
+ smb_shm_processes_fd = sys_open(processreg_file, O_RDWR, 0);
if ( smb_shm_processes_fd < 0 )
{
DEBUG(0,("ERROR smb_shm_unregister_process : processreg_file open failed with code %s\n",strerror(errno)));
@@ -818,7 +818,7 @@ struct shmem_ops *smb_shm_open(int ronly)
DEBUG(5,("smb_shm_open : using shmem file %s to be of size %.0f\n",
file_name,(double)size));
- smb_shm_fd = open(file_name, read_only?O_RDONLY:(O_RDWR|O_CREAT),
+ smb_shm_fd = sys_open(file_name, read_only?O_RDONLY:(O_RDWR|O_CREAT),
SHM_FILE_MODE);
if ( smb_shm_fd < 0 )
@@ -917,9 +917,9 @@ size (%.0f), using filesize\n", (double)filesize, (double)size));
size = filesize;
}
- smb_shm_header_p = (struct SmbShmHeader *)mmap(NULL, size,
+ smb_shm_header_p = (struct SmbShmHeader *)sys_mmap(NULL, size,
read_only?PROT_READ: (PROT_READ | PROT_WRITE),
- MAP_FILE | MAP_SHARED, smb_shm_fd, 0);
+ MAP_FILE | MAP_SHARED, smb_shm_fd, (SMB_OFF_T)0);
/*
* WARNING, smb_shm_header_p can be different for different
diff --git a/source3/nmbd/nmbd_namelistdb.c b/source3/nmbd/nmbd_namelistdb.c
index 1493c87f8a..8d6d139867 100644
--- a/source3/nmbd/nmbd_namelistdb.c
+++ b/source3/nmbd/nmbd_namelistdb.c
@@ -611,7 +611,7 @@ void dump_all_namelists(void)
pstrcat(fname,"/");
pstrcat(fname,"namelist.debug");
- fp = fopen(fname,"w");
+ fp = sys_fopen(fname,"w");
if (!fp)
{
diff --git a/source3/nmbd/nmbd_serverlistdb.c b/source3/nmbd/nmbd_serverlistdb.c
index cf7295ee11..d30e8da64c 100644
--- a/source3/nmbd/nmbd_serverlistdb.c
+++ b/source3/nmbd/nmbd_serverlistdb.c
@@ -345,7 +345,7 @@ void write_browse_list(time_t t, BOOL force_write)
pstrcpy(fnamenew,fname);
pstrcat(fnamenew,".");
- fp = fopen(fnamenew,"w");
+ fp = sys_fopen(fnamenew,"w");
if (!fp)
{
diff --git a/source3/nmbd/nmbd_synclists.c b/source3/nmbd/nmbd_synclists.c
index 8dee5ca4f2..dae25b6eca 100644
--- a/source3/nmbd/nmbd_synclists.c
+++ b/source3/nmbd/nmbd_synclists.c
@@ -161,7 +161,7 @@ void sync_browse_lists(struct work_record *work,
DEBUG(2,("Initiating browse sync for %s to %s(%s)\n",
work->work_group, name, inet_ntoa(ip)));
- fp = fopen(s->fname,"w");
+ fp = sys_fopen(s->fname,"w");
if (!fp) _exit(1);
sync_child(name, nm_type, work->work_group, ip, local, servers,
@@ -239,7 +239,7 @@ static void complete_sync(struct sync_record *s)
char *ptr;
int count=0;
- f = fopen(s->fname,"r");
+ f = sys_fopen(s->fname,"r");
if (!f) return;
diff --git a/source3/nmbd/nmbd_winsserver.c b/source3/nmbd/nmbd_winsserver.c
index 0906715af4..35ca5af62c 100644
--- a/source3/nmbd/nmbd_winsserver.c
+++ b/source3/nmbd/nmbd_winsserver.c
@@ -157,7 +157,7 @@ BOOL initialise_wins(void)
pstrcat(fname,"/");
pstrcat(fname,WINS_LIST);
- if((fp = fopen(fname,"r")) == NULL)
+ if((fp = sys_fopen(fname,"r")) == NULL)
{
DEBUG(2,("initialise_wins: Can't open wins database file %s. Error was %s\n",
fname, strerror(errno) ));
@@ -1555,7 +1555,7 @@ void wins_write_database(BOOL background)
string_sub(fname,"//", "/");
slprintf(fnamenew,sizeof(fnamenew),"%s.%u", fname, (unsigned int)getpid());
- if((fp = fopen(fnamenew,"w")) == NULL)
+ if((fp = sys_fopen(fnamenew,"w")) == NULL)
{
DEBUG(0,("wins_write_database: Can't open %s. Error was %s\n", fnamenew, strerror(errno)));
if (background) {
diff --git a/source3/param/params.c b/source3/param/params.c
index 2f54b72131..74dd3d7a25 100644
--- a/source3/param/params.c
+++ b/source3/param/params.c
@@ -499,7 +499,7 @@ static FILE *OpenConfFile( char *FileName )
return( NULL );
}
- OpenedFile = fopen( FileName, "r" );
+ OpenedFile = sys_fopen( FileName, "r" );
if( NULL == OpenedFile )
{
DEBUG( lvl,
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c
index a4c663e388..da45f15f5f 100644
--- a/source3/passdb/passdb.c
+++ b/source3/passdb/passdb.c
@@ -548,7 +548,7 @@ char *pwdb_encode_acct_ctrl(uint16 acct_ctrl, size_t length)
15 lines, which is more important.
**********************************************************/
-uint16 pwdb_decode_acct_ctrl(char *p)
+uint16 pwdb_decode_acct_ctrl(const char *p)
{
uint16 acct_ctrl = 0;
BOOL finished = False;
@@ -591,7 +591,7 @@ uint16 pwdb_decode_acct_ctrl(char *p)
gets password-database-format time from a string.
********************************************************************/
-static time_t get_time_from_string(char *p)
+static time_t get_time_from_string(const char *p)
{
int i;
@@ -609,7 +609,7 @@ static time_t get_time_from_string(char *p)
* read into a time_t as the seconds since
* 1970 that the password was last changed.
*/
- return (time_t)strtol((char *)p, NULL, 16);
+ return (time_t)strtol(p, NULL, 16);
}
return (time_t)-1;
}
@@ -618,9 +618,9 @@ static time_t get_time_from_string(char *p)
gets password last set time
********************************************************************/
-time_t pwdb_get_last_set_time(char *p)
+time_t pwdb_get_last_set_time(const char *p)
{
- if (*p && StrnCaseCmp((char *)p, "LCT-", 4))
+ if (*p && StrnCaseCmp(p, "LCT-", 4))
{
return get_time_from_string(p + 4);
}
diff --git a/source3/passdb/smbpass.c b/source3/passdb/smbpass.c
index bdf01ee6a8..67f8ea6cfb 100644
--- a/source3/passdb/smbpass.c
+++ b/source3/passdb/smbpass.c
@@ -118,14 +118,14 @@ static struct smb_passwd *getsmbfilepwent(void *vp)
* As 256 is shorter than a pstring we don't need to check
* length here - if this ever changes....
*/
- p = strncpyn(user_name, linebuf, sizeof(user_name), ':');
+ p = (unsigned char *)strncpyn(user_name, linebuf, sizeof(user_name), ':');
/* Go past ':' */
p++;
/* Get smb uid. */
- p = Atoic((char *) p, &uidval, ":");
+ p = (unsigned char *)Atoic((char *) p, &uidval, ":");
pw_buf.smb_name = user_name;
pw_buf.smb_userid = uidval;
@@ -218,7 +218,7 @@ static struct smb_passwd *getsmbfilepwent(void *vp)
if (*p == ':')
{
p++;
- pw_buf.pass_last_set_time = pwdb_get_last_set_time(p);
+ pw_buf.pass_last_set_time = pwdb_get_last_set_time((char *)p);
}
}
else
@@ -522,7 +522,7 @@ static BOOL mod_smbfilepwd_entry(struct smb_passwd* pwd, BOOL override)
}
DEBUG(10, ("mod_smbfilepwd_entry: opening file %s\n", pfile));
- fp = fopen(pfile, "r+");
+ fp = sys_fopen(pfile, "r+");
if (fp == NULL) {
DEBUG(0, ("mod_smbfilepwd_entry: unable to open file %s\n", pfile));
diff --git a/source3/passdb/smbpasschange.c b/source3/passdb/smbpasschange.c
index 71bfc65f84..1a3c100fa5 100644
--- a/source3/passdb/smbpasschange.c
+++ b/source3/passdb/smbpasschange.c
@@ -93,7 +93,7 @@ account without a valid system user.\n", user_name);
FILE *fp;
slprintf(msg_str,msg_str_len-1,
"smbpasswd file did not exist - attempting to create it.\n");
- fp = fopen(lp_smb_passwd_file(), "w");
+ fp = sys_fopen(lp_smb_passwd_file(), "w");
if (fp) {
fprintf(fp, "# Samba SMB password file\n");
fclose(fp);
diff --git a/source3/passdb/smbpassfile.c b/source3/passdb/smbpassfile.c
index a50bc93eac..51eb799fc2 100644
--- a/source3/passdb/smbpassfile.c
+++ b/source3/passdb/smbpassfile.c
@@ -66,9 +66,9 @@ BOOL trust_password_lock( char *domain, char *name, BOOL update)
get_trust_account_file_name( domain, name, mac_file);
- if((mach_passwd_fp = fopen(mac_file, "r+b")) == NULL) {
+ if((mach_passwd_fp = sys_fopen(mac_file, "r+b")) == NULL) {
if(errno == ENOENT && update) {
- mach_passwd_fp = fopen(mac_file, "w+b");
+ mach_passwd_fp = sys_fopen(mac_file, "w+b");
}
if(mach_passwd_fp == NULL) {
diff --git a/source3/passdb/smbpassgroup.c b/source3/passdb/smbpassgroup.c
index 9454becc99..f3a0d4244b 100644
--- a/source3/passdb/smbpassgroup.c
+++ b/source3/passdb/smbpassgroup.c
@@ -77,9 +77,8 @@ static struct smb_passwd *getsmbfilegrpent(void *vp,
static pstring user_name;
struct passwd *pwfile;
pstring linebuf;
- unsigned char *p;
+ char *p;
int uidval;
- size_t linebuf_len;
if (vp == NULL)
{
@@ -92,7 +91,7 @@ static struct smb_passwd *getsmbfilegrpent(void *vp,
/*
* Scan the file, a line at a time.
*/
- while ((linebuf_len = getfileline(vp, linebuf, sizeof(linebuf))) > 0)
+ while (getfileline(vp, linebuf, sizeof(linebuf)) > 0)
{
/*
* The line we have should be of the form :-
diff --git a/source3/printing/pcap.c b/source3/printing/pcap.c
index d51e69ad74..242406c974 100644
--- a/source3/printing/pcap.c
+++ b/source3/printing/pcap.c
@@ -101,7 +101,7 @@ static void ScanQconfig_fn(char *psz,void (*fn)())
*name = 0;
*comment = 0;
- if ((pfile = fopen(psz, "r")) == NULL)
+ if ((pfile = sys_fopen(psz, "r")) == NULL)
{
DEBUG(0,( "Unable to open qconfig file %s for read!\n", psz));
return;
@@ -176,7 +176,7 @@ static BOOL ScanQconfig(char *psz,char *pszPrintername)
DEBUG(0,(" Unable to allocate memory for printer %s\n",pszPrintername));
return(False);
}
- if ((pfile = fopen(psz, "r")) == NULL)
+ if ((pfile = sys_fopen(psz, "r")) == NULL)
{
DEBUG(0,( "Unable to open qconfig file %s for read!\n", psz));
free(pName);
@@ -272,7 +272,7 @@ BOOL pcap_printername_ok(char *pszPrintername, char *pszPrintcapname)
return(ScanQconfig(psz,pszPrintername));
#endif
- if ((pfile = fopen(psz, "r")) == NULL)
+ if ((pfile = sys_fopen(psz, "r")) == NULL)
{
DEBUG(0,( "Unable to open printcap file %s for read!\n", psz));
return(False);
@@ -344,7 +344,7 @@ void pcap_printer_fn(void (*fn)(char *, char *))
}
#endif
- if ((pfile = fopen(psz, "r")) == NULL)
+ if ((pfile = sys_fopen(psz, "r")) == NULL)
{
DEBUG(0,( "Unable to open printcap file %s for read!\n", psz));
return;
diff --git a/source3/printing/printing.c b/source3/printing/printing.c
index d779a42ec7..dfb87dc6fa 100644
--- a/source3/printing/printing.c
+++ b/source3/printing/printing.c
@@ -1009,7 +1009,7 @@ int get_printqueue(int snum,
lpq_cache_reset[snum] = False;
- f = fopen(outfile,"r");
+ f = sys_fopen(outfile,"r");
if (!f) {
return(0);
}
diff --git a/source3/rpc_server/srv_samr.c b/source3/rpc_server/srv_samr.c
index 68c51a860a..7b970d27d2 100644
--- a/source3/rpc_server/srv_samr.c
+++ b/source3/rpc_server/srv_samr.c
@@ -807,12 +807,11 @@ static void samr_reply_lookup_ids(SAMR_Q_LOOKUP_IDS *q_u,
else if (sid_equal(&dom_sid, &usr_sid))
{
DOMAIN_GRP *mem_grp = NULL;
- BOOL ret;
DEBUG(5,("lookup on Domain SID\n"));
become_root(True);
- ret = getusergroupsnam(sam_pass->smb_name, &mem_grp, &num_rids);
+ getusergroupsnam(sam_pass->smb_name, &mem_grp, &num_rids);
unbecome_root(True);
num_rids = MIN(num_rids, MAX_SAM_ENTRIES);
@@ -1370,10 +1369,9 @@ static void samr_reply_query_usergroups(SAMR_Q_QUERY_USERGROUPS *q_u,
if (status == 0x0)
{
DOMAIN_GRP *mem_grp = NULL;
- BOOL ret;
become_root(True);
- ret = getusergroupsnam(sam_pass->smb_name, &mem_grp, &num_groups);
+ getusergroupsnam(sam_pass->smb_name, &mem_grp, &num_groups);
unbecome_root(True);
gids = NULL;
diff --git a/source3/rpc_server/srv_sid.c b/source3/rpc_server/srv_sid.c
index 29cc1c936c..6428e965f7 100644
--- a/source3/rpc_server/srv_sid.c
+++ b/source3/rpc_server/srv_sid.c
@@ -69,7 +69,7 @@ DOM_SID global_sid_S_1_3_1; /* Creator group */
DOM_SID global_sid_S_1_3_2; /* Creator owner server */
DOM_SID global_sid_S_1_3_3; /* Creator group server */
-extern pstring global_myworkgroup;
+extern fstring global_myworkgroup;
/* extern fstring global_member_dom_name; */
static struct sid_name_map_info
@@ -254,7 +254,7 @@ BOOL generate_sam_sid(void)
pstrcat(sid_file, "MACHINE.SID");
- if ((fd = open(sid_file, O_RDWR | O_CREAT, 0644)) == -1) {
+ if ((fd = sys_open(sid_file, O_RDWR | O_CREAT, 0644)) == -1) {
DEBUG(0,("unable to open or create file %s. Error was %s\n",
sid_file, strerror(errno) ));
return False;
diff --git a/source3/script/installman.sh b/source3/script/installman.sh
index b3422e5b3d..4eda8fd537 100755
--- a/source3/script/installman.sh
+++ b/source3/script/installman.sh
@@ -29,7 +29,7 @@ for sect in 1 5 7 8 ; do
if (rm -f $FNAME && touch $FNAME); then
rm $FNAME
- if [ x$GROFF = x ] ; then
+ if [ "x$GROFF" = x ] ; then
cp $s $m # Copy raw nroff
else
echo "\t$FNAME" # groff'ing can be slow, give the user
diff --git a/source3/smbd/chgpasswd.c b/source3/smbd/chgpasswd.c
index 52ca364070..69ac69b59b 100644
--- a/source3/smbd/chgpasswd.c
+++ b/source3/smbd/chgpasswd.c
@@ -65,7 +65,7 @@ static int findpty(char **slave)
#endif /* !HAVE_GRANTPT */
#if defined(HAVE_GRANTPT)
- if ((master = open("/dev/ptmx", O_RDWR)) >= 1) {
+ if ((master = sys_open("/dev/ptmx", O_RDWR, 0)) >= 1) {
grantpt(master);
unlockpt(master);
*slave = ptsname(master);
@@ -90,7 +90,7 @@ static int findpty(char **slave)
DEBUG(3,("pty: try to open %s, line was %s\n", dpname, line ) );
line[8] = dpname[3];
line[9] = dpname[4];
- if ((master = open(line, O_RDWR)) >= 0) {
+ if ((master = sys_open(line, O_RDWR, 0)) >= 0) {
DEBUG(3,("pty: opened %s\n", line ) );
line[5] = 't';
*slave = line;
@@ -133,7 +133,7 @@ static int dochild(int master,char *slavedev, char *name, char *passwordprogram,
}
/* Open slave pty and acquire as new controlling terminal. */
- if ((slave = open(slavedev, O_RDWR)) < 0) {
+ if ((slave = sys_open(slavedev, O_RDWR, 0)) < 0) {
DEBUG(3,("More weirdness, could not open %s\n",
slavedev));
return(False);
diff --git a/source3/smbd/connection.c b/source3/smbd/connection.c
index af74e40f6a..db6c66f1d5 100644
--- a/source3/smbd/connection.c
+++ b/source3/smbd/connection.c
@@ -51,7 +51,7 @@ BOOL yield_connection(connection_struct *conn,char *name,int max_connections)
pstrcat(fname,name);
pstrcat(fname,".LCK");
- fd = open(fname,O_RDWR);
+ fd = sys_open(fname,O_RDWR,0);
if (fd == -1) {
DEBUG(2,("Couldn't open lock file %s (%s)\n",fname,strerror(errno)));
return(False);
@@ -137,11 +137,11 @@ BOOL claim_connection(connection_struct *conn,char *name,int max_connections,BOO
pstrcat(fname,".LCK");
if (!file_exist(fname,NULL)) {
- fd = open(fname,O_RDWR|O_CREAT|O_EXCL, 0644);
+ fd = sys_open(fname,O_RDWR|O_CREAT|O_EXCL, 0644);
}
if (fd == -1) {
- fd = open(fname,O_RDWR);
+ fd = sys_open(fname,O_RDWR,0);
}
if (fd == -1) {
diff --git a/source3/smbd/groupname.c b/source3/smbd/groupname.c
index 2b87cad330..44625cf54a 100644
--- a/source3/smbd/groupname.c
+++ b/source3/smbd/groupname.c
@@ -330,7 +330,7 @@ static void load_name_map(GROUP_TYPE type)
* Load the file.
*/
- fp = fopen(map_file,"r");
+ fp = sys_fopen(map_file,"r");
if (!fp)
{
DEBUG(0,("load_name_map: can't open name map %s. Error was %s\n",
@@ -461,7 +461,7 @@ static BOOL map_sid_to_ntname(GROUP_TYPE type, ubi_slList *map_list,
{
fstrcpy(ntname, gmep->grp.nt_domain);
}
- DEBUG(7,("map_sid_to_ntname: Mapping unix group %s to nt group \%s\%s\n",
+ DEBUG(7,("map_sid_to_ntname: Mapping unix group %s to nt group \\%s\\%s\n",
gmep->grp.unix_name,
gmep->grp.nt_domain, gmep->grp.nt_name ));
return True;
diff --git a/source3/smbd/ipc.c b/source3/smbd/ipc.c
index eed5a71401..d5ff7ddf28 100644
--- a/source3/smbd/ipc.c
+++ b/source3/smbd/ipc.c
@@ -635,7 +635,7 @@ static void fill_printq_info(connection_struct *conn, int snum, int uLevel,
pstring fname;
pstrcpy(fname,lp_driverfile());
- f=fopen(fname,"r");
+ f=sys_fopen(fname,"r");
if (!f) {
DEBUG(3,("fill_printq_info: Can't open %s - %s\n",fname,strerror(errno)));
desc->errcode=NERR_notsupported;
@@ -741,7 +741,7 @@ static int get_printerdrivernumber(int snum)
pstrcpy(fname,lp_driverfile());
DEBUG(4,("In get_printerdrivernumber: %s\n",fname));
- f=fopen(fname,"r");
+ f=sys_fopen(fname,"r");
if (!f) {
DEBUG(3,("get_printerdrivernumber: Can't open %s - %s\n",fname,strerror(errno)));
return(0);
@@ -999,7 +999,7 @@ static int get_server_info(uint32 servertype,
pstrcat(fname,"/");
pstrcat(fname,SERVER_LIST);
- f = fopen(fname,"r");
+ f = sys_fopen(fname,"r");
if (!f) {
DEBUG(4,("Can't open %s - %s\n",fname,strerror(errno)));
diff --git a/source3/smbd/message.c b/source3/smbd/message.c
index 001fc652b2..d13dfda1e0 100644
--- a/source3/smbd/message.c
+++ b/source3/smbd/message.c
@@ -56,7 +56,7 @@ static void msg_deliver(void)
slprintf(s,sizeof(s)-1, "%s/msg.XXXXXX",tmpdir());
fstrcpy(name,(char *)mktemp(s));
- fd = open(name,O_WRONLY|O_CREAT|O_TRUNC|O_EXCL,0600);
+ fd = sys_open(name,O_WRONLY|O_CREAT|O_TRUNC|O_EXCL,0600);
if (fd == -1) {
DEBUG(1,("can't open message file %s\n",name));
return;
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index c81334c8ae..d7cef6d63b 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -552,8 +552,8 @@ static void mmap_open_file(files_struct *fsp)
if (!fsp->can_write) {
fsp->mmap_size = file_size(fsp->fsp_name);
if (fsp->mmap_size < MAX_MMAP_SIZE) {
- fsp->mmap_ptr = (char *)mmap(NULL,fsp->mmap_size,
- PROT_READ,MAP_SHARED,fsp->fd_ptr->fd,0);
+ fsp->mmap_ptr = (char *)sys_mmap(NULL,fsp->mmap_size,
+ PROT_READ,MAP_SHARED,fsp->fd_ptr->fd,(SMB_OFF_T)0);
if (fsp->mmap_ptr == (char *)-1 || !fsp->mmap_ptr) {
DEBUG(3,("Failed to mmap() %s - %s\n",
diff --git a/source3/smbd/oplock.c b/source3/smbd/oplock.c
index 19a3afa998..1d38b362ec 100644
--- a/source3/smbd/oplock.c
+++ b/source3/smbd/oplock.c
@@ -1056,7 +1056,7 @@ void check_kernel_oplocks(void)
return;
}
- if((fd = open(tmpname, O_RDWR|O_CREAT|O_TRUNC|O_EXCL, 0600)) < 0) {
+ if((fd = sys_open(tmpname, O_RDWR|O_CREAT|O_TRUNC|O_EXCL, 0600)) < 0) {
DEBUG(0,("check_kernel_oplocks: Unable to open temp test file %s. Error was %s\n",
tmpname, strerror(errno) ));
unlink( tmpname );
diff --git a/source3/smbd/password.c b/source3/smbd/password.c
index 0c8eb124ff..9011b9b95e 100644
--- a/source3/smbd/password.c
+++ b/source3/smbd/password.c
@@ -813,7 +813,7 @@ static BOOL check_user_equiv(char *user, char *remote, char *equiv_file)
int plus_allowed = 1;
char *file_host;
char *file_user;
- FILE *fp = fopen(equiv_file, "r");
+ FILE *fp = sys_fopen(equiv_file, "r");
DEBUG(5, ("check_user_equiv %s %s %s\n", user, remote, equiv_file));
if (! fp) return False;
while(fgets(buf, sizeof(buf), fp))
diff --git a/source3/smbd/quotas.c b/source3/smbd/quotas.c
index 5cd5a895c6..afabb1befd 100644
--- a/source3/smbd/quotas.c
+++ b/source3/smbd/quotas.c
@@ -270,7 +270,7 @@ BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_U
if ( devno != devno_cached ) {
devno_cached = devno ;
#if defined(SUNOS5)
- if ((fd = fopen(MNTTAB, "r")) == NULL)
+ if ((fd = sys_fopen(MNTTAB, "r")) == NULL)
return(False) ;
found = False ;
@@ -320,7 +320,7 @@ BOOL disk_quotas(char *path, SMB_BIG_UINT *bsize, SMB_BIG_UINT *dfree, SMB_BIG_U
#if defined(SUNOS5)
DEBUG(5,("disk_quotas: looking for quotas file \"%s\"\n", name));
- if((file=open(name, O_RDONLY))<0) {
+ if((file=sys_open(name, O_RDONLY,0))<0) {
setuid(user_id); /* Restore the original UID status */
seteuid(euser_id);
return(False);
diff --git a/source3/smbwrapper/shared.c b/source3/smbwrapper/shared.c
index 2ee019b2dc..f679e4a8a8 100644
--- a/source3/smbwrapper/shared.c
+++ b/source3/smbwrapper/shared.c
@@ -40,7 +40,7 @@ void smbw_setup_shared(void)
fstrcpy(name,(char *)mktemp(s));
/* note zero permissions! don't change this */
- fd = open(name,O_RDWR|O_CREAT|O_TRUNC|O_EXCL,0);
+ fd = sys_open(name,O_RDWR|O_CREAT|O_TRUNC|O_EXCL,0);
if (fd == -1) goto failed;
unlink(name);
diff --git a/source3/smbwrapper/smbw.c b/source3/smbwrapper/smbw.c
index 7c85765234..faaa9f047b 100644
--- a/source3/smbwrapper/smbw.c
+++ b/source3/smbwrapper/smbw.c
@@ -65,7 +65,7 @@ void smbw_init(void)
dbf = stderr;
if ((p=smbw_getshared("LOGFILE"))) {
- dbf = fopen(p, "a");
+ dbf = sys_fopen(p, "a");
}
smbw_file_bmap = bitmap_allocate(SMBW_MAX_OPEN);
diff --git a/source3/utils/make_printerdef.c b/source3/utils/make_printerdef.c
index c64ce64bbf..68b603bf1f 100644
--- a/source3/utils/make_printerdef.c
+++ b/source3/utils/make_printerdef.c
@@ -471,7 +471,7 @@ int main(int argc, char *argv[])
return(-1);
}
- inf_file=fopen(argv[1],"r");
+ inf_file=sys_fopen(argv[1],"r");
if (!inf_file)
{
fprintf(stderr,"Description file not found, bye\n");
diff --git a/source3/utils/make_smbcodepage.c b/source3/utils/make_smbcodepage.c
index 0653fd31f1..a57af2fc44 100644
--- a/source3/utils/make_smbcodepage.c
+++ b/source3/utils/make_smbcodepage.c
@@ -190,7 +190,7 @@ The maximum size I will believe is 100k.\n", prog_name, size);
exit(1);
}
- if((fp = fopen(input_file, "r")) == NULL)
+ if((fp = sys_fopen(input_file, "r")) == NULL)
{
fprintf(stderr, "%s: cannot open file %s for input.\n", prog_name, input_file);
exit(1);
@@ -283,7 +283,7 @@ definition file. File %s has %d.\n", prog_name, MAXCODEPAGELINES, input_file, nu
}
/* Now write out the output_buf. */
- if((fp = fopen(output_file, "w"))==NULL)
+ if((fp = sys_fopen(output_file, "w"))==NULL)
{
fprintf(stderr, "%s: Cannot open output file %s. Error was %s.\n",
prog_name, output_file, strerror(errno));
@@ -339,7 +339,7 @@ code page file.\n", prog_name, input_file);
is held in little endian format.
*/
- if((fp = fopen( input_file, "r")) == NULL)
+ if((fp = sys_fopen( input_file, "r")) == NULL)
{
fprintf(stderr, "%s: cannot open file %s. Error was %s\n",
prog_name, input_file, strerror(errno));
@@ -411,7 +411,7 @@ multiple of 4.\n", prog_name, input_file);
fclose(fp);
/* Now dump the codepage into an ascii file. */
- if((fp = fopen(output_file, "w")) == NULL)
+ if((fp = sys_fopen(output_file, "w")) == NULL)
{
fprintf(stderr, "%s: cannot open file %s. Error was %s\n",
prog_name, output_file, strerror(errno));
diff --git a/source3/utils/status.c b/source3/utils/status.c
index fa1e8b43bf..96df087858 100644
--- a/source3/utils/status.c
+++ b/source3/utils/status.c
@@ -211,7 +211,7 @@ static void print_share_mode(share_mode_entry *e, char *fname)
trim_string(fname,"","/");
pstrcat(fname,"/STATUS..LCK");
- f = fopen(fname,"r");
+ f = sys_fopen(fname,"r");
if (!f) {
printf("Couldn't open status file %s\n",fname);
if (!lp_status(-1))
diff --git a/source3/utils/testprns.c b/source3/utils/testprns.c
index caa9e2740a..c03fa0436a 100644
--- a/source3/utils/testprns.c
+++ b/source3/utils/testprns.c
@@ -52,7 +52,7 @@ int main(int argc, char *argv[])
printf("Usage: testprns printername [printcapfile]\n");
else
{
- dbf = fopen("test.log", "w");
+ dbf = sys_fopen("test.log", "w");
if (dbf == NULL) {
printf("Unable to open logfile.\n");
} else {
diff --git a/source3/web/cgi.c b/source3/web/cgi.c
index db2cfb4555..009244e595 100644
--- a/source3/web/cgi.c
+++ b/source3/web/cgi.c
@@ -437,7 +437,7 @@ static void cgi_download(char *file)
cgi_setup_error("404 File Not Found","",
"The requested file was not found");
}
- fd = open(file,O_RDONLY);
+ fd = sys_open(file,O_RDONLY,0);
if (fd == -1) {
cgi_setup_error("404 File Not Found","",
"The requested file was not found");
@@ -493,7 +493,7 @@ void cgi_setup(char *rootdir, int auth_required)
inetd_server = True;
#if CGI_LOGGING
- f = fopen("/tmp/cgi.log", "a");
+ f = sys_fopen("/tmp/cgi.log", "a");
if (f) fprintf(f,"\n[Date: %s %s (%s)]\n",
http_timestring(time(NULL)),
client_name(1), client_addr(1));
diff --git a/source3/web/statuspage.c b/source3/web/statuspage.c
index 184f7e1f73..81564390a0 100644
--- a/source3/web/statuspage.c
+++ b/source3/web/statuspage.c
@@ -124,7 +124,7 @@ void status_page(void)
pstrcat(fname,"/STATUS..LCK");
- f = fopen(fname,"r");
+ f = sys_fopen(fname,"r");
if (f) {
while (!feof(f)) {
if (fread(&crec,sizeof(crec),1,f) != 1) break;
@@ -157,7 +157,7 @@ void status_page(void)
printf("<p>\n");
- f = fopen(fname,"r");
+ f = sys_fopen(fname,"r");
if (!f) {
printf("Couldn't open status file %s\n",fname);
if (!lp_status(-1))
diff --git a/source3/web/swat.c b/source3/web/swat.c
index cdbd1f8c8c..7004891f32 100644
--- a/source3/web/swat.c
+++ b/source3/web/swat.c
@@ -106,7 +106,7 @@ static char *make_parm_name(char *label)
****************************************************************************/
static int include_html(char *fname)
{
- FILE *f = fopen(fname,"r");
+ FILE *f = sys_fopen(fname,"r");
char buf[1024];
int ret;
@@ -318,7 +318,7 @@ static int save_reload(void)
{
FILE *f;
- f = fopen(servicesf,"w");
+ f = sys_fopen(servicesf,"w");
if (!f) {
printf("failed to open %s for writing\n", servicesf);
return 0;
@@ -894,7 +894,7 @@ static void printers_page(void)
/* just in case it goes wild ... */
alarm(300);
- dbf = fopen("/dev/null", "w");
+ dbf = sys_fopen("/dev/null", "w");
if (!dbf) dbf = stderr;