--- src/lib/libc/stdlib/grantpt.c.orig Wed Jun 8 14:28:48 2005 +++ src/lib/libc/stdlib/grantpt.c Wed Jul 6 11:45:18 2005 @@ -214,8 +214,9 @@ char * ptsname(int fildes) { static char slave[] = _PATH_DEV PTS_PREFIX "XY"; - char *retval; + char *retval, *dname; struct stat sbuf; + size_t used; retval = NULL; @@ -223,10 +224,14 @@ ptsname(int fildes) if (!ISPTM(sbuf)) errno = EINVAL; else { - (void)sprintf(slave, _PATH_DEV PTS_PREFIX "%c%c", - PT_DEV1[minor(sbuf.st_rdev) / 32], - PT_DEV2[minor(sbuf.st_rdev) % 32]); retval = slave; + *retval = '\0'; + strcpy(retval, _PATH_DEV); + used = strlen(retval); + strcpy(retval + used, PTS_PREFIX); + used = strlen(retval); + dname = devname(sbuf.st_rdev, S_IFCHR); + strcpy(retval + used, dname + strlen(PTM_PREFIX)); } }