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.
This commit is contained in:
parent
59c04e6763
commit
b68f862056
11
ChangeLog
11
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]
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user