]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Hide internal regex functions [BZ #18822]
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 1 Oct 2017 22:52:56 +0000 (15:52 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 1 Oct 2017 22:53:15 +0000 (15:53 -0700)
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.

ChangeLog
include/regex.h
posix/regcomp.c
posix/regexec.c

index 4ee574002d1de1dffabd1f6541195e8eca638526..3726fac199aaac0c7e0b98be0f7b7264d32dfce7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [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.
+
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
        [BZ #18822]
index fd4beeff3d955ab9f070ef643bf05a69ac5f7b96..24eca2c297bb6043b323dc2fe7f140d4d910c55e 100644 (file)
@@ -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
index a5b46139a96f2f41eabacc023784144038bd46e9..871ae2ffab5ffc57a9d3b594c42feec5cdd5a4f6 100644 (file)
@@ -517,6 +517,7 @@ regcomp (regex_t *__restrict preg, const char *__restrict pattern, int cflags)
   return (int) ret;
 }
 #ifdef _LIBC
+libc_hidden_def (__regcomp)
 weak_alias (__regcomp, regcomp)
 #endif
 
@@ -644,6 +645,7 @@ regfree (regex_t *preg)
   preg->translate = NULL;
 }
 #ifdef _LIBC
+libc_hidden_def (__regfree)
 weak_alias (__regfree, regfree)
 #endif
 \f
index f46b1f71cad1de8de747591877bad277a01d695c..a96d86d431796cdedeac5807d4cbf580f4d4cad8 100644 (file)
@@ -224,6 +224,8 @@ regexec (const regex_t *__restrict preg, const char *__restrict string,
 }
 
 #ifdef _LIBC
+libc_hidden_def (__regexec)
+
 # include <shlib-compat.h>
 versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4);