From 1534c83a9aef13ea3d292ebc353f3897dfd57986 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 25 Apr 2010 22:18:48 +0200 Subject: [PATCH] ptsname: Fix misuse of ttyname_r. --- ChangeLog | 6 ++++++ lib/ptsname.c | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9cdd83a51c..9208e2fdd9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-04-25 Bruno Haible + + ptsname: Fix misuse of ttyname_r. + * lib/ptsname.c (__ptsname_r): Use __ttyname_r's return value instead + of errno. + 2010-04-25 Bruno Haible ttyname_r: Make it work on Solaris 10. diff --git a/lib/ptsname.c b/lib/ptsname.c index a62ef2104a..3c7a9e043b 100644 --- a/lib/ptsname.c +++ b/lib/ptsname.c @@ -63,6 +63,7 @@ static int __ptsname_r (int fd, char *buf, size_t buflen) { int save_errno = errno; + int err; struct stat st; if (buf == NULL) @@ -81,8 +82,12 @@ __ptsname_r (int fd, char *buf, size_t buflen) return ERANGE; } - if (__ttyname_r (fd, buf, buflen) != 0) - return errno; + err = __ttyname_r (fd, buf, buflen); + if (err != 0) + { + __set_errno (err); + return errno; + } buf[sizeof (_PATH_DEV) - 1] = 't'; -- 2.30.2