diff --git a/src/acls.c b/src/acls.c
index 3f40541..e5a32a4 100644
--- a/src/acls.c
+++ b/src/acls.c
@@ -182,7 +182,7 @@ struct acluser **up;
#endif
(*up)->u_Esc = DefaultEsc;
(*up)->u_MetaEsc = DefaultMetaEsc;
- strncpy((*up)->u_name, name, 20);
+ strncpy((*up)->u_name, name, MAXLOGINLEN);
(*up)->u_password = NULL;
if (pass)
(*up)->u_password = SaveStr(pass);
@@ -318,8 +318,8 @@ struct acluser **up;
return UserAdd(name, pass, up);
if (!strcmp(name, "nobody")) /* he remains without password */
return -1;
- strncpy((*up)->u_password, pass ? pass : "", 20);
- (*up)->u_password[20] = '\0';
+ strncpy((*up)->u_password, pass ? pass : "", MAXLOGINLEN);
+ (*up)->u_password[MAXLOGINLEN] = '\0';
return 0;
}
#endif
diff --git a/src/acls.h b/src/acls.h
index 907e953..42c7c18 100644
--- a/src/acls.h
+++ b/src/acls.h
@@ -78,7 +78,7 @@ struct plop
typedef struct acluser
{
struct acluser *u_next; /* continue the main user list */
- char u_name[20+1]; /* login name how he showed up */
+ char u_name[MAXLOGINLEN + 1]; /* login name how he showed up */
char *u_password; /* his password (may be NullStr). */
int u_checkpassword; /* nonzero if this u_password is valid */
int u_detachwin; /* the window where he last detached */
diff --git a/src/comm.c b/src/comm.c
index 5f4af8a..7705fcb 100644
--- a/src/comm.c
+++ b/src/comm.c
@@ -36,6 +36,7 @@
*/
#include "config.h"
+#include "os.h"
#include "acls.h"
#include "comm.h"
diff --git a/src/display.h b/src/display.h
index b1ab748..a433e6d 100644
--- a/src/display.h
+++ b/src/display.h
@@ -73,7 +73,7 @@ struct display
struct win *d_other; /* pointer to other window */
int d_nonblock; /* -1 don't block if obufmax reached */
/* >0: block after nonblock secs */
- char d_termname[40 + 1]; /* $TERM */
+ char d_termname[MAXTERMLEN + 1]; /* $TERM */
char *d_tentry; /* buffer for tgetstr */
char d_tcinited; /* termcap inited flag */
int d_width, d_height; /* width/height of the screen */
diff --git a/src/os.h b/src/os.h
index 5c17c83..bc71c97 100644
--- a/src/os.h
+++ b/src/os.h
@@ -521,3 +521,8 @@ typedef struct fd_set { int fds_bits[1]; } fd_set;
*/
#define IOSIZE 4096
+/* Changing those you won't be able to attach to your old sessions
+ * when changing those values in official tree don't forget to bump
+ * MSG_VERSION */
+#define MAXTERMLEN 50
+#define MAXLOGINLEN 256
diff --git a/src/process.c b/src/process.c
index 7817ac8..a3c2e3d 100644
--- a/src/process.c
+++ b/src/process.c
@@ -2649,9 +2649,9 @@ int key;
s = NULL;
if (ParseSaveStr(act, &s))
break;
- if (strlen(s) >= 20)
+ if (strlen(s) >= MAXTERMLEN)
{
- OutputMsg(0, "%s: term: argument too long ( < 20)", rc_name);
+ OutputMsg(0, "%s: term: argument too long ( < %d)", rc_name, MAXTERMLEN);
free(s);
break;
}
diff --git a/src/screen.c b/src/screen.c
index cd0c71b..7a21762 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -995,10 +995,10 @@ char **av;
if (home == 0 || *home == '\0')
home = ppp->pw_dir;
- if (strlen(LoginName) > 20)
+ if (strlen(LoginName) > MAXLOGINLEN)
Panic(0, "LoginName too long - sorry.");
#ifdef MULTIUSER
- if (multi && strlen(multi) > 20)
+ if (multi && strlen(multi) > MAXLOGINLEN)
Panic(0, "Screen owner name too long - sorry.");
#endif
if (strlen(home) > MAXPATHLEN - 25)
diff --git a/src/screen.h b/src/screen.h
index 1a388e3..30ecefb 100644
--- a/src/screen.h
+++ b/src/screen.h
@@ -202,32 +202,32 @@ struct msg
int nargs;
char line[MAXPATHLEN];
char dir[MAXPATHLEN];
- char screenterm[20]; /* is screen really "screen" ? */
+ char screenterm[MAXTERMLEN]; /* is screen really "screen" ? */
}
create;
struct
{
- char auser[20 + 1]; /* username */
+ char auser[MAXLOGINLEN + 1]; /* username */
int apid; /* pid of frontend */
int adaptflag; /* adapt window size? */
int lines, columns; /* display size */
char preselect[20];
int esc; /* his new escape character unless -1 */
int meta_esc; /* his new meta esc character unless -1 */
- char envterm[40 + 1]; /* terminal type */
+ char envterm[MAXTERMLEN + 1]; /* terminal type */
int encoding; /* encoding of display */
int detachfirst; /* whether to detach remote sessions first */
}
attach;
struct
{
- char duser[20 + 1]; /* username */
+ char duser[MAXLOGINLEN + 1]; /* username */
int dpid; /* pid of frontend */
}
detach;
struct
{
- char auser[20 + 1]; /* username */
+ char auser[MAXLOGINLEN + 1]; /* username */
int nargs;
char cmd[MAXPATHLEN]; /* command */
int apid; /* pid of frontend */
diff --git a/src/socket.c b/src/socket.c
index 1f04284..32c5047 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -1528,7 +1528,7 @@ static void PasswordProcessInput __P((char *, int));
struct pwdata {
int l;
- char buf[20 + 1];
+ char buf[MAXLOGINLEN + 1];
struct msg m;
};