diff options
-rw-r--r-- | source3/client/clientutil.c | 2 | ||||
-rw-r--r-- | source3/include/includes.h | 8 | ||||
-rw-r--r-- | source3/include/local.h | 2 | ||||
-rw-r--r-- | source3/smbd/reply.c | 10 | ||||
-rw-r--r-- | source3/smbd/server.c | 4 |
5 files changed, 15 insertions, 11 deletions
diff --git a/source3/client/clientutil.c b/source3/client/clientutil.c index ed5497782b..01b4a09321 100644 --- a/source3/client/clientutil.c +++ b/source3/client/clientutil.c @@ -460,7 +460,7 @@ BOOL cli_send_login(char *inbuf, char *outbuf, BOOL start_session, BOOL use_setu /* send a session setup command */ bzero(outbuf,smb_size); - if (passlen > MAX_PASSWORD_LENGTH) { + if (passlen > MAX_PASS_LEN) { DEBUG(1,("password too long %d\n", passlen)); return False; } diff --git a/source3/include/includes.h b/source3/include/includes.h index 4ca1d4c3b0..a877f1ffb3 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -1114,15 +1114,15 @@ extern char *sys_errlist[]; #endif #ifndef S_ISREG -#define S_ISREG(x) ((S_IFREG & x)!=0) +#define S_ISREG(x) ((S_IFREG & (x))!=0) #endif #ifndef S_ISDIR -#define S_ISDIR(x) ((S_IFDIR & x)!=0) +#define S_ISDIR(x) ((S_IFDIR & (x))!=0) #endif #if !defined(S_ISLNK) && defined(S_IFLNK) -#define S_ISLNK(x) ((S_IFLNK & x)!=0) +#define S_ISLNK(x) ((S_IFLNK & (x))!=0) #endif #ifdef UFC_CRYPT @@ -1202,7 +1202,7 @@ it works and getting lots of bug reports */ /* this is a rough check to see if this machine has a lstat() call. it is not guaranteed to work */ -#if !(defined(S_ISLNK) || defined(S_IFLNK)) +#if !defined(S_ISLNK) #define lstat stat #endif diff --git a/source3/include/local.h b/source3/include/local.h index 3ce75eeb4e..22d1b2a08e 100644 --- a/source3/include/local.h +++ b/source3/include/local.h @@ -43,7 +43,7 @@ #define WORDMAX 0xFFFF /* the maximum password length before we declare a likely attack */ -#define MAX_PASSWORD_LENGTH 200 +#define MAX_PASS_LEN 200 /* separators for lists */ #define LIST_SEP " \t,;:\n\r" diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index fa641931eb..2a3679553c 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -252,7 +252,7 @@ int reply_tcon_and_X(char *inbuf,char *outbuf,int length,int bufsize) if ((SVAL(inbuf,smb_vwv2) & 0x1) != 0) close_cnum(SVAL(inbuf,smb_tid),vuid); - if (passlen > MAX_PASSWORD_LENGTH) { + if (passlen > MAX_PASS_LEN) { overflow_attack(passlen); } @@ -388,7 +388,7 @@ int reply_sesssetup_and_X(char *inbuf,char *outbuf,int length,int bufsize) if (Protocol < PROTOCOL_NT1) { smb_apasslen = SVAL(inbuf,smb_vwv7); - if (smb_apasslen > MAX_PASSWORD_LENGTH) + if (smb_apasslen > MAX_PASS_LEN) { overflow_attack(smb_apasslen); } @@ -423,12 +423,12 @@ int reply_sesssetup_and_X(char *inbuf,char *outbuf,int length,int bufsize) if (passlen1 != 24 && passlen2 != 24) doencrypt = False; - if (passlen1 > MAX_PASSWORD_LENGTH) { + if (passlen1 > MAX_PASS_LEN) { overflow_attack(passlen1); } - passlen1 = MIN(passlen1, MAX_PASSWORD_LENGTH); - passlen2 = MIN(passlen2, MAX_PASSWORD_LENGTH); + passlen1 = MIN(passlen1, MAX_PASS_LEN); + passlen2 = MIN(passlen2, MAX_PASS_LEN); if(doencrypt) { /* Save the lanman2 password and the NT md4 password. */ diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 2b906a7641..e4d433c06f 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -214,10 +214,12 @@ int dos_mode(int cnum,char *path,struct stat *sbuf) if (S_ISDIR(sbuf->st_mode)) result = aDIR | (result & aRONLY); +#ifdef S_ISLNK #if LINKS_READ_ONLY if (S_ISLNK(sbuf->st_mode) && S_ISDIR(sbuf->st_mode)) result |= aRONLY; #endif +#endif /* hide files with a name starting with a . */ if (lp_hide_dot_files(SNUM(cnum))) @@ -863,6 +865,7 @@ BOOL check_name(char *name,int cnum) /* Patch from David Clerc <David.Clerc@cui.unige.ch> University of Geneva */ +#ifdef S_ISLNK if (!lp_symlinks(SNUM(cnum))) { struct stat statbuf; @@ -873,6 +876,7 @@ BOOL check_name(char *name,int cnum) ret=0; } } +#endif if (!ret) DEBUG(5,("check_name on %s failed\n",name)); |