Hide internal __get_sol function [BZ #18822]

Hide internal __get_sol function to allow direct access within libc.so
and libc.a without using GOT nor PLT.

	[BZ #18822]
	* sysdeps/unix/sysv/linux/getsourcefilter.c: Include
	"getsourcefilter.h".
	* sysdeps/unix/sysv/linux/getsourcefilter.h: New file.
	* sysdeps/unix/sysv/linux/setsourcefilter.c: Include
	"getsourcefilter.h".
	(__get_sol): Removed.
This commit is contained in:
H.J. Lu 2017-10-01 16:12:08 -07:00
parent a0aef7830e
commit 8369d216dc
4 changed files with 32 additions and 4 deletions

View File

@ -1,3 +1,13 @@
2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
[BZ #18822]
* sysdeps/unix/sysv/linux/getsourcefilter.c: Include
"getsourcefilter.h".
* sysdeps/unix/sysv/linux/getsourcefilter.h: New file.
* sysdeps/unix/sysv/linux/setsourcefilter.c: Include
"getsourcefilter.h".
(__get_sol): Removed.
2017-10-01 H.J. Lu <hongjiu.lu@intel.com> 2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
[BZ #18822] [BZ #18822]

View File

@ -31,6 +31,7 @@
#include <netrose/rose.h> #include <netrose/rose.h>
#include <sys/param.h> #include <sys/param.h>
#include <sys/socket.h> #include <sys/socket.h>
#include "getsourcefilter.h"
static const struct static const struct

View File

@ -0,0 +1,20 @@
/* __get_sol function prototype.
Copyright (C) 2017 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/* Defined in getsourcefilter.c. */
extern int __get_sol (int af, socklen_t len) attribute_hidden;

View File

@ -24,10 +24,7 @@
#include <stdint.h> #include <stdint.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <sys/socket.h> #include <sys/socket.h>
#include "getsourcefilter.h"
/* Defined in getsourcefilter.c. */
extern int __get_sol (int af, socklen_t len);
int int