Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Sep 2012 13:13:28 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org
Subject:   svn commit: r240648 - releng/9.1/lib/libc/stdlib
Message-ID:  <201209181313.q8IDDSG9097917@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Tue Sep 18 13:13:28 2012
New Revision: 240648
URL: http://svn.freebsd.org/changeset/base/240648

Log:
  MFC r240412:
  
    According to a clarification at http://austingroupbugs.net/view.php?id=503
    ptsname may set errno, so avoid saving and restoring errno across the
    function.
  
  PR: standards/171572
  Approved by: re
  Sponsored by: ADARA Networks

Modified:
  releng/9.1/lib/libc/stdlib/ptsname.3
  releng/9.1/lib/libc/stdlib/ptsname.c
Directory Properties:
  releng/9.1/lib/libc/   (props changed)

Modified: releng/9.1/lib/libc/stdlib/ptsname.3
==============================================================================
--- releng/9.1/lib/libc/stdlib/ptsname.3	Tue Sep 18 13:03:00 2012	(r240647)
+++ releng/9.1/lib/libc/stdlib/ptsname.3	Tue Sep 18 13:13:28 2012	(r240648)
@@ -102,7 +102,8 @@ of the slave device on success; otherwis
 pointer is returned.
 .Sh ERRORS
 The
-.Fn grantpt
+.Fn grantpt ,
+.Fn ptsname
 and
 .Fn unlockpt
 functions may fail and set

Modified: releng/9.1/lib/libc/stdlib/ptsname.c
==============================================================================
--- releng/9.1/lib/libc/stdlib/ptsname.c	Tue Sep 18 13:03:00 2012	(r240647)
+++ releng/9.1/lib/libc/stdlib/ptsname.c	Tue Sep 18 13:13:28 2012	(r240648)
@@ -77,7 +77,6 @@ ptsname(int fildes)
 {
 	static char pt_slave[sizeof _PATH_DEV + SPECNAMELEN] = _PATH_DEV;
 	char *ret = NULL;
-	int sverrno = errno;
 
 	/* Make sure fildes points to a master device. */
 	if (__isptmaster(fildes) != 0)
@@ -87,7 +86,6 @@ ptsname(int fildes)
 	    sizeof pt_slave - (sizeof _PATH_DEV - 1)) != NULL)
 		ret = pt_slave;
 
-done:	/* Make sure ptsname() does not overwrite errno. */
-	errno = sverrno;
+done:
 	return (ret);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209181313.q8IDDSG9097917>