summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-06-21 08:16:12 +0000
committerphk <phk@FreeBSD.org>2003-06-21 08:16:12 +0000
commitd6a3dc0a5923a623809d7bf9f60513fcfcbe0111 (patch)
treef9670d7e6200ea5700b9d1ab1b38c6f5aca56ef2 /lib
parented79b4d6257cb411589c447a07a268c99e8b345d (diff)
downloadFreeBSD-src-d6a3dc0a5923a623809d7bf9f60513fcfcbe0111.zip
FreeBSD-src-d6a3dc0a5923a623809d7bf9f60513fcfcbe0111.tar.gz
ttyname(3) must return absolute pathnames.
Noticed by: kris
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/gen/ttyname.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/libc/gen/ttyname.c b/lib/libc/gen/ttyname.c
index 0def640..22f7488 100644
--- a/lib/libc/gen/ttyname.c
+++ b/lib/libc/gen/ttyname.c
@@ -93,7 +93,10 @@ ttyname_r(int fd, char *buf, size_t len)
if (len <= sizeof(_PATH_DEV))
return (rval);
- return(devname_r(sb.st_rdev, S_IFCHR, buf, sizeof(buf)));
+ strcpy(buf, _PATH_DEV);
+ devname_r(sb.st_rdev, S_IFCHR,
+ buf + strlen(buf), sizeof(buf) - strlen(buf));
+ return (buf);
}
static char *
@@ -140,5 +143,8 @@ ttyname_unthreaded(int fd)
if (_fstat(fd, &sb) || !S_ISCHR(sb.st_mode))
return (NULL);
- return(devname_r(sb.st_rdev, S_IFCHR, buf, sizeof(buf)));
+ strcpy(buf, _PATH_DEV);
+ devname_r(sb.st_rdev, S_IFCHR,
+ buf + strlen(buf), sizeof(buf) - strlen(buf));
+ return (buf);
}
OpenPOWER on IntegriCloud