about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2017-09-28 00:01:40 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2017-09-28 00:49:05 +0200
commit52a1f1814ef530d8c78442f2bcaf28f4f2575790 (patch)
tree9bfb33f719c7c3a4be1c15fe904c485550844d82
parent2c7bbfaf4e361b482f3ccfbdbb29cc5121ca0ea8 (diff)
downloadglibc-52a1f1814ef530d8c78442f2bcaf28f4f2575790.tar.gz
glibc-52a1f1814ef530d8c78442f2bcaf28f4f2575790.tar.xz
glibc-52a1f1814ef530d8c78442f2bcaf28f4f2575790.zip
hurd: Fix `revoke' symbol exposition from `unlockpt'
`revoke' is MISC only, it should not be exposed along `unlockpt' which is
XOPEN.

	* include/unistd.h (__revoke): New declaration.
	* misc/revoke.c (revoke): Rename to __revoke, and redefine as weak
	alias.
	* sysdeps/mach/hurd/revoke.c (revoke): Likewise.
	* sysdeps/unix/bsd/unlockpt.c (unlockpt): Use __revoke instead of
	revoke.
-rw-r--r--ChangeLog6
-rw-r--r--include/unistd.h1
-rw-r--r--misc/revoke.c4
-rw-r--r--sysdeps/mach/hurd/revoke.c4
-rw-r--r--sysdeps/unix/bsd/unlockpt.c2
5 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index a535da875c..ff321d7e2b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,12 @@
 	* sysdeps/posix/dirfd/dirfd.c (dirfd): Likewise.
 	* sysdeps/mach/hurd/dirfd.c (dirfd): Likewise.
 	* io/ftw.c (open_dir_stream, ftw_dir): Use __dirfd instead of dirfd.
+	* include/unistd.h (__revoke): New declaration.
+	* misc/revoke.c (revoke): Rename to __revoke, and redefine as weak
+	alias.
+	* sysdeps/mach/hurd/revoke.c (revoke): Likewise.
+	* sysdeps/unix/bsd/unlockpt.c (unlockpt): Use __revoke instead of
+	revoke.
 
 2017-09-26  H.J. Lu  <hongjiu.lu@intel.com>
 
diff --git a/include/unistd.h b/include/unistd.h
index a5625ed7f4..bfe0e4de47 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -130,6 +130,7 @@ extern int __symlink (const char *__from, const char *__to);
 extern ssize_t __readlink (const char *__path, char *__buf, size_t __len);
 extern int __unlink (const char *__name);
 extern int __gethostname (char *__name, size_t __len);
+extern int __revoke (const char *__file);
 extern int __profil (unsigned short int *__sample_buffer, size_t __size,
 		     size_t __offset, unsigned int __scale);
 extern int __getdtablesize (void);
diff --git a/misc/revoke.c b/misc/revoke.c
index d953216246..21df2bbf90 100644
--- a/misc/revoke.c
+++ b/misc/revoke.c
@@ -20,9 +20,11 @@
 #include <errno.h>
 
 int
-revoke (const char *file)
+__revoke (const char *file)
 {
   __set_errno (ENOSYS);
   return -1;
 }
+
+weak_alias (__revoke, revoke)
 stub_warning (revoke)
diff --git a/sysdeps/mach/hurd/revoke.c b/sysdeps/mach/hurd/revoke.c
index 15b955b733..2f47f42de6 100644
--- a/sysdeps/mach/hurd/revoke.c
+++ b/sysdeps/mach/hurd/revoke.c
@@ -21,7 +21,7 @@
 #include <hurd.h>
 
 int
-revoke (const char *file_name)
+__revoke (const char *file_name)
 {
   error_t err;
   file_t file = __file_name_lookup (file_name, 0, 0);
@@ -36,3 +36,5 @@ revoke (const char *file_name)
     return __hurd_fail (err);
   return 0;
 }
+
+weak_alias (__revoke, revoke)
diff --git a/sysdeps/unix/bsd/unlockpt.c b/sysdeps/unix/bsd/unlockpt.c
index 7388c98523..ca4e7c654e 100644
--- a/sysdeps/unix/bsd/unlockpt.c
+++ b/sysdeps/unix/bsd/unlockpt.c
@@ -32,5 +32,5 @@ unlockpt (int fd)
   /* BSD doesn't have a lock, but it does have `revoke'.  */
   if (__ptsname_r (fd, buf, sizeof (buf)))
     return -1;
-  return revoke (buf);
+  return __revoke (buf);
 }