diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-03-11 19:14:41 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-03-11 19:14:41 +0000 |
commit | e137f0e944aac71bf17381c33466291251808f6c (patch) | |
tree | 5e6051e57986bb6b11bd8fff91aaa4c374aa105f /cpukit | |
parent | 2010-03-11 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-e137f0e944aac71bf17381c33466291251808f6c.tar.bz2 |
2010-03-11 Ken Peters <kptrs@yahoo.com>
PR 1456/cpukit
* libcsupport/src/ttyname.c: ttyname_r() when called directly (not via
ttyname()) does not prefix the caller provided buffer with the
predefined _PATH_DEV string (/dev/). Thus the directory search fails
and no tty name is returned to the caller.
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/ChangeLog | 8 | ||||
-rw-r--r-- | cpukit/libcsupport/src/ttyname.c | 5 |
2 files changed, 12 insertions, 1 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index bb09f11c35..65b644acd6 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,11 @@ +2010-03-11 Ken Peters <kptrs@yahoo.com> + + PR 1456/cpukit + * libcsupport/src/ttyname.c: ttyname_r() when called directly (not via + ttyname()) does not prefix the caller provided buffer with the + predefined _PATH_DEV string (/dev/). Thus the directory search fails + and no tty name is returned to the caller. + 2010-03-11 Joel Sherrill <joel.sherrill@oarcorp.com> * ftpd/ftpd.c, httpd/uemf.c, httpd/um.c, httpd/webs.c, diff --git a/cpukit/libcsupport/src/ttyname.c b/cpukit/libcsupport/src/ttyname.c index 9b86997caf..ed0b5cbdc1 100644 --- a/cpukit/libcsupport/src/ttyname.c +++ b/cpukit/libcsupport/src/ttyname.c @@ -55,7 +55,7 @@ #include <rtems/libio_.h> #include <rtems/seterr.h> -static char ttyname_buf[sizeof (_PATH_DEV) + MAXNAMLEN] = _PATH_DEV; +static char ttyname_buf[sizeof (_PATH_DEV) + MAXNAMLEN]; /* * ttyname_r() - POSIX 1003.1b 4.7.2 - Demetermine Terminal Device Name @@ -84,6 +84,9 @@ int ttyname_r( if ((dp = opendir (_PATH_DEV)) == NULL) rtems_set_errno_and_return_minus_one(EBADF); + /* Place the base directory in the path. */ + strncpy (name, _PATH_DEV, namesize); + for (rval = NULL; (dirp = readdir (dp)) != NULL ;) { if (dirp->d_ino != sb.st_ino) |