diff -ru screen-4.0.3/acls.c screen-4.0.3.rjn/acls.c --- screen-4.0.3/acls.c 2003-09-08 15:24:40.000000000 +0100 +++ screen-4.0.3.rjn/acls.c 2009-03-12 11:39:50.000000000 +0000 @@ -178,7 +178,7 @@ #endif (*up)->u_Esc = DefaultEsc; (*up)->u_MetaEsc = DefaultMetaEsc; - strncpy((*up)->u_name, name, 20); + strncpy((*up)->u_name, name, 40); (*up)->u_password = NULL; if (pass) (*up)->u_password = SaveStr(pass); @@ -314,8 +314,8 @@ 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 : "", 40); + (*up)->u_password[40] = '\0'; return 0; } #endif diff -ru screen-4.0.3/acls.h screen-4.0.3.rjn/acls.h --- screen-4.0.3/acls.h 2003-09-08 15:23:38.000000000 +0100 +++ screen-4.0.3.rjn/acls.h 2009-03-12 09:58:45.000000000 +0000 @@ -5,7 +5,7 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) + * the Free Software Foumndation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, @@ -73,7 +73,7 @@ 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[40+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 -ru screen-4.0.3/config.h.in screen-4.0.3.rjn/config.h.in --- screen-4.0.3/config.h.in 2006-10-23 14:06:32.000000000 +0100 +++ screen-4.0.3.rjn/config.h.in 2009-03-12 09:19:56.000000000 +0000 @@ -35,7 +35,7 @@ * Maximum of simultaneously allowed windows per screen session. */ #ifndef MAXWIN -# define MAXWIN 40 +# define MAXWIN 100 #endif /* diff -ru screen-4.0.3/screen.c screen-4.0.3.rjn/screen.c --- screen-4.0.3/screen.c 2003-09-08 15:26:41.000000000 +0100 +++ screen-4.0.3.rjn/screen.c 2009-03-12 09:14:49.000000000 +0000 @@ -877,10 +877,10 @@ if (home == 0 || *home == '\0') home = ppp->pw_dir; - if (strlen(LoginName) > 20) + if (strlen(LoginName) > 40) Panic(0, "LoginName too long - sorry."); #ifdef MULTIUSER - if (multi && strlen(multi) > 20) + if (multi && strlen(multi) > 40) Panic(0, "Screen owner name too long - sorry."); #endif if (strlen(home) > MAXPATHLEN - 25) diff -ru screen-4.0.3/screen.h screen-4.0.3.rjn/screen.h --- screen-4.0.3/screen.h 2003-08-22 13:28:43.000000000 +0100 +++ screen-4.0.3.rjn/screen.h 2009-03-12 11:51:34.000000000 +0000 @@ -190,31 +190,31 @@ int nargs; char line[MAXPATHLEN]; char dir[MAXPATHLEN]; - char screenterm[20]; /* is screen really "screen" ? */ + char screenterm[40]; /* is screen really "screen" ? */ } create; struct { - char auser[20 + 1]; /* username */ + char auser[40 + 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[20 + 1]; /* terminal type */ + char envterm[40 + 1]; /* terminal type */ int encoding; /* encoding of display */ } attach; struct { - char duser[20 + 1]; /* username */ + char duser[40 + 1]; /* username */ int dpid; /* pid of frontend */ } detach; struct { - char auser[20 + 1]; /* username */ + char auser[40 + 1]; /* username */ int nargs; char cmd[MAXPATHLEN]; /* command */ int apid; /* pid of frontend */ diff -ru screen-4.0.3/termcap.c screen-4.0.3.rjn/termcap.c --- screen-4.0.3/termcap.c 2003-09-08 15:45:36.000000000 +0100 +++ screen-4.0.3.rjn/termcap.c 2009-03-12 11:49:02.000000000 +0000 @@ -68,7 +68,7 @@ static int Termcaplen; static int tcLineLen; char Term[MAXSTR+5]; /* +5: "TERM=" */ -char screenterm[20]; /* new $TERM, usually "screen" */ +char screenterm[40]; /* new $TERM, usually "screen" */ char *extra_incap, *extra_outcap; @@ -1487,12 +1487,12 @@ e_tgetnum(cap) char *cap; { - char buf[20], *bufp; + char buf[40], *bufp; char *tep, c; int res, base = 10; bufp = buf; - if ((tep = findcap(cap, &bufp, 20))) + if ((tep = findcap(cap, &bufp, 40))) { c = *tep; if (c == '@')