about summary refs log tree commit diff
path: root/include/regex.h
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-10-01 15:52:56 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-10-01 15:53:15 -0700
commitb68f8620561d7658b475eb512978d3c33d8a4547 (patch)
treec8f020413abe4033585fbb140e7dab24a2f025bf /include/regex.h
parent59c04e67631d370738b80923d42d4d1539d8f95f (diff)
downloadglibc-b68f8620561d7658b475eb512978d3c33d8a4547.tar.gz
glibc-b68f8620561d7658b475eb512978d3c33d8a4547.tar.xz
glibc-b68f8620561d7658b475eb512978d3c33d8a4547.zip
Hide internal regex functions [BZ #18822]
Hide internal regex functions to allow direct access within libc.so and
libc.a without using GOT nor PLT.

	[BZ #18822]
	* include/regex.h (__re_compile_fastmap): Add attribute_hidden.
	(__regcomp): Add libc_hidden_proto.
	(__regexec): Likewise.
	(__regfree): Likewise.
	* posix/regcomp.c (__regcomp): Add libc_hidden_def.
	(__regfree): Likewise.
	* posix/regexec.c (__regexec): Likewise.
Diffstat (limited to 'include/regex.h')
-rw-r--r--include/regex.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/regex.h b/include/regex.h
index fd4beeff3d..24eca2c297 100644
--- a/include/regex.h
+++ b/include/regex.h
@@ -8,7 +8,8 @@ extern reg_syntax_t __re_set_syntax (reg_syntax_t syntax);
 extern const char *__re_compile_pattern (const char *pattern, size_t length,
 					 struct re_pattern_buffer *buffer);
 
-extern int __re_compile_fastmap (struct re_pattern_buffer *buffer);
+extern int __re_compile_fastmap (struct re_pattern_buffer *buffer)
+     attribute_hidden;
 
 extern int __re_search (struct re_pattern_buffer *buffer, const char *string,
 			int length, int start, int range,
@@ -33,13 +34,16 @@ extern void __re_set_registers
    unsigned num_regs, regoff_t *starts, regoff_t *ends);
 
 extern int __regcomp (regex_t *__preg, const char *__pattern, int __cflags);
+libc_hidden_proto (__regcomp)
 
 extern int __regexec (const regex_t *__preg, const char *__string,
 		      size_t __nmatch, regmatch_t __pmatch[], int __eflags);
+libc_hidden_proto (__regexec)
 
 extern size_t __regerror (int __errcode, const regex_t *__preg,
 			  char *__errbuf, size_t __errbuf_size);
 
 extern void __regfree (regex_t *__preg);
+libc_hidden_proto (__regfree)
 #endif
 #endif