diff -dur gcl-2.6.7.ORIG/o/unixfsys.c gcl-2.6.7/o/unixfsys.c --- gcl-2.6.7.ORIG/o/unixfsys.c 2008-11-04 16:36:47.000000000 -0700 +++ gcl-2.6.7/o/unixfsys.c 2008-11-04 16:46:37.000000000 -0700 @@ -215,7 +215,7 @@ #ifndef NO_PWD_H if(namestring->st.st_self[0]=='~') - {char name[20]; + {char name[LOGIN_NAME_MAX]; int n; char *q = namestring->st.st_self; #ifndef __STDC__ @@ -225,8 +225,7 @@ struct passwd *pwent; int m=0; - q=namestring->st.st_self; - for (n=0; n< namestring->st.st_fillp; n++) + for (n=1; n< namestring->st.st_fillp; n++) if (q[n]=='/') break; bcopy(q+1,name,n-1); name[n-1]= 0;