diff -dur gcl-2.6.8.ORIG/o/unixfsys.c gcl-2.6.8/o/unixfsys.c --- gcl-2.6.8.ORIG/o/unixfsys.c 2008-12-29 17:42:18.000000000 -0700 +++ gcl-2.6.8/o/unixfsys.c 2008-12-29 17:51:35.000000000 -0700 @@ -214,7 +214,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__ @@ -224,8 +224,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;