This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.21-491-gabccad0


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  abccad04b4172d552dbdae948c0e567ba266ad76 (commit)
      from  0595c98494c25f8eaa1a3298e8fa032ad5e4405e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=abccad04b4172d552dbdae948c0e567ba266ad76

commit abccad04b4172d552dbdae948c0e567ba266ad76
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Jun 17 20:21:19 2015 +0000

    Fix ttyslot namespace (bug 18547).
    
    ttyslot (XPG4) calls the non-XPG4 functions endttyent, getttyent and
    setttyent, which in turn bring in references to fgets_unlocked and
    getttynam.  This patch fixes this by making these functions into weak
    aliases and calling the __* names as needed.
    
    Tested for x86_64 and x86 (testsuite, and that disassembly of
    installed stripped shared libraries is unchanged by the patch).
    
    	[BZ #18547]
    	* misc/getttyent.c (getttynam): Rename to __getttynam and define
    	as weak alias of __getttynam.  Use prototype function definition.
    	Call __setttyent, __getttyent and __endttyent instead of
    	setttyent, getttyent and endttyent.
    	(getttyent): Rename to __getttyent and define as weak alias of
    	__getttyent.  Call __setttyent instead of setttyent.  Call
    	__fgets_unlocked instead of fgets_unlocked.
    	(setttyent): Rename to __setttyent and define as weak alias of
    	__setttyent.
    	(endttyent): Rename to __endttyent and define as weak alias of
    	__endttyent.
    	* include/ttyent.h (__getttyent): Declare.  Use libc_hidden_proto.
    	(__setttyent): Likewise.
    	(__endttyent): Likewise.
    	(getttyent): Don't use libc_hidden_proto.
    	(setttyent): Likewise.
    	(endttyent): Likewise.
    	* misc/ttyslot.c (ttyslot): Call __setttyent, __getttyent and
    	__endttyent instead of setttyent, getttyent and endttyent.
    	* conform/Makefile (test-xfail-XPG4/unistd.h/linknamespace):
    	Remove variable.

diff --git a/ChangeLog b/ChangeLog
index 2ea4f1a..4ce8eb9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,28 @@
 2015-06-17  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #18547]
+	* misc/getttyent.c (getttynam): Rename to __getttynam and define
+	as weak alias of __getttynam.  Use prototype function definition.
+	Call __setttyent, __getttyent and __endttyent instead of
+	setttyent, getttyent and endttyent.
+	(getttyent): Rename to __getttyent and define as weak alias of
+	__getttyent.  Call __setttyent instead of setttyent.  Call
+	__fgets_unlocked instead of fgets_unlocked.
+	(setttyent): Rename to __setttyent and define as weak alias of
+	__setttyent.
+	(endttyent): Rename to __endttyent and define as weak alias of
+	__endttyent.
+	* include/ttyent.h (__getttyent): Declare.  Use libc_hidden_proto.
+	(__setttyent): Likewise.
+	(__endttyent): Likewise.
+	(getttyent): Don't use libc_hidden_proto.
+	(setttyent): Likewise.
+	(endttyent): Likewise.
+	* misc/ttyslot.c (ttyslot): Call __setttyent, __getttyent and
+	__endttyent instead of setttyent, getttyent and endttyent.
+	* conform/Makefile (test-xfail-XPG4/unistd.h/linknamespace):
+	Remove variable.
+
 	[BZ #18546]
 	* socket/recv.c (__recv): Use libc_hidden_def.
 	* socket/socket.c (__socket): Likewise.
diff --git a/NEWS b/NEWS
index 1892800..3adec9b 100644
--- a/NEWS
+++ b/NEWS
@@ -22,7 +22,7 @@ Version 2.22
   18324, 18333, 18346, 18397, 18409, 18410, 18412, 18418, 18422, 18434,
   18444, 18468, 18469, 18470, 18479, 18483, 18495, 18496, 18497, 18498,
   18507, 18512, 18519, 18520, 18522, 18527, 18528, 18529, 18530, 18532,
-  18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545, 18546.
+  18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545, 18546, 18547.
 
 * Cache information can be queried via sysconf() function on s390 e.g. with
   _SC_LEVEL1_ICACHE_SIZE as argument.
diff --git a/conform/Makefile b/conform/Makefile
index 52df51e..ad9cc69 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -345,4 +345,3 @@ test-xfail-XOPEN2K8/ndbm.h/linknamespace = yes
 
 # Unsorted expected failures.
 test-xfail-XPG3/unistd.h/linknamespace = yes
-test-xfail-XPG4/unistd.h/linknamespace = yes
diff --git a/include/ttyent.h b/include/ttyent.h
index e510df8..81e5211 100644
--- a/include/ttyent.h
+++ b/include/ttyent.h
@@ -1,8 +1,11 @@
 #ifndef	_TTYENT_H
 # include <misc/ttyent.h>
 
-libc_hidden_proto (getttyent)
-libc_hidden_proto (setttyent)
-libc_hidden_proto (endttyent)
+extern __typeof (getttyent) __getttyent __THROW;
+libc_hidden_proto (__getttyent)
+extern __typeof (setttyent) __setttyent __THROW;
+libc_hidden_proto (__setttyent)
+extern __typeof (endttyent) __endttyent __THROW;
+libc_hidden_proto (__endttyent)
 
 #endif
diff --git a/misc/getttyent.c b/misc/getttyent.c
index 864f65f..fcdbc22 100644
--- a/misc/getttyent.c
+++ b/misc/getttyent.c
@@ -44,24 +44,24 @@ static char zapchar;
 static FILE *tf;
 
 struct ttyent *
-getttynam(tty)
-	const char *tty;
+__getttynam (const char *tty)
 {
 	struct ttyent *t;
 
-	setttyent();
-	while ((t = getttyent()))
+	__setttyent();
+	while ((t = __getttyent()))
 		if (!strcmp(tty, t->ty_name))
 			break;
-	endttyent();
+	__endttyent();
 	return (t);
 }
+weak_alias (__getttynam, getttynam)
 
 static char *skip (char *) __THROW internal_function;
 static char *value (char *) __THROW internal_function;
 
 struct ttyent *
-getttyent (void)
+__getttyent (void)
 {
 	static struct ttyent tty;
 	int c;
@@ -69,11 +69,11 @@ getttyent (void)
 #define	MAXLINELENGTH	100
 	static char line[MAXLINELENGTH];
 
-	if (!tf && !setttyent())
+	if (!tf && !__setttyent())
 		return (NULL);
 	flockfile (tf);
 	for (;;) {
-		if (!fgets_unlocked(p = line, sizeof(line), tf)) {
+		if (!__fgets_unlocked(p = line, sizeof(line), tf)) {
 			funlockfile (tf);
 			return (NULL);
 		}
@@ -131,7 +131,8 @@ getttyent (void)
 		*p = '\0';
 	return (&tty);
 }
-libc_hidden_def (getttyent)
+libc_hidden_def (__getttyent)
+weak_alias (__getttyent, getttyent)
 
 #define	QUOTED	1
 
@@ -184,7 +185,7 @@ value(p)
 }
 
 int
-setttyent (void)
+__setttyent (void)
 {
 
 	if (tf) {
@@ -197,10 +198,11 @@ setttyent (void)
 	}
 	return (0);
 }
-libc_hidden_def (setttyent)
+libc_hidden_def (__setttyent)
+weak_alias (__setttyent, setttyent)
 
 int
-endttyent (void)
+__endttyent (void)
 {
 	int rval;
 
@@ -211,4 +213,5 @@ endttyent (void)
 	}
 	return (1);
 }
-libc_hidden_def (endttyent)
+libc_hidden_def (__endttyent)
+weak_alias (__endttyent, endttyent)
diff --git a/misc/ttyslot.c b/misc/ttyslot.c
index 9c69589..0ed14d7 100644
--- a/misc/ttyslot.c
+++ b/misc/ttyslot.c
@@ -53,20 +53,20 @@ ttyslot (void)
 
 	name = __alloca (buflen);
 
-	setttyent();
+	__setttyent();
 	for (cnt = 0; cnt < 3; ++cnt)
 		if (__ttyname_r (cnt, name, buflen) == 0) {
 			if ((p = rindex(name, '/')))
 				++p;
 			else
 				p = name;
-			for (slot = 1; (ttyp = getttyent()); ++slot)
+			for (slot = 1; (ttyp = __getttyent()); ++slot)
 				if (!strcmp(ttyp->ty_name, p)) {
-					endttyent();
+					__endttyent();
 					return(slot);
 				}
 			break;
 		}
-	endttyent();
+	__endttyent();
 	return(0);
 }

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog        |   23 +++++++++++++++++++++++
 NEWS             |    2 +-
 conform/Makefile |    1 -
 include/ttyent.h |    9 ++++++---
 misc/getttyent.c |   29 ++++++++++++++++-------------
 misc/ttyslot.c   |    8 ++++----
 6 files changed, 50 insertions(+), 22 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]