Blob Blame History Raw
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;
 };