mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
__fortify_fail: Remove internal_function attribute
__fortify_fail is called across DSO boundaries, so it should not use a non-standard calling convention.
This commit is contained in:
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
|||||||
|
2017-08-13 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
|
* debug/fortify_fail.c (__fortify_fail, __fortify_fail_abort):
|
||||||
|
Remove internal_function.
|
||||||
|
* include/stdio.h (__fortify_fail, __fortify_fail_abort): Likewise.
|
||||||
|
* sysdeps/mach/hurd/i386/____longjmp_chk.S (CALL_FAIL): Pass
|
||||||
|
message argument on the stack.
|
||||||
|
* sysdeps/unix/sysv/linux/i386/____longjmp_chk.S (CALL_FAIL):
|
||||||
|
Likeweise.
|
||||||
|
|
||||||
2017-08-12 Mike FABIAN <mfabian@redhat.com>
|
2017-08-12 Mike FABIAN <mfabian@redhat.com>
|
||||||
|
|
||||||
Adapt test case data to the changes in the thousands
|
Adapt test case data to the changes in the thousands
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
extern char **__libc_argv attribute_hidden;
|
extern char **__libc_argv attribute_hidden;
|
||||||
|
|
||||||
void
|
void
|
||||||
__attribute__ ((noreturn)) internal_function
|
__attribute__ ((noreturn))
|
||||||
__fortify_fail_abort (_Bool need_backtrace, const char *msg)
|
__fortify_fail_abort (_Bool need_backtrace, const char *msg)
|
||||||
{
|
{
|
||||||
/* The loop is added only to keep gcc happy. Don't pass down
|
/* The loop is added only to keep gcc happy. Don't pass down
|
||||||
@ -38,7 +38,7 @@ __fortify_fail_abort (_Bool need_backtrace, const char *msg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
__attribute__ ((noreturn)) internal_function
|
__attribute__ ((noreturn))
|
||||||
__fortify_fail (const char *msg)
|
__fortify_fail (const char *msg)
|
||||||
{
|
{
|
||||||
__fortify_fail_abort (true, msg);
|
__fortify_fail_abort (true, msg);
|
||||||
|
@ -98,10 +98,9 @@ extern void __libc_fatal (const char *__message)
|
|||||||
__attribute__ ((__noreturn__));
|
__attribute__ ((__noreturn__));
|
||||||
extern void __libc_message (enum __libc_message_action action,
|
extern void __libc_message (enum __libc_message_action action,
|
||||||
const char *__fnt, ...);
|
const char *__fnt, ...);
|
||||||
extern void __fortify_fail (const char *msg)
|
extern void __fortify_fail (const char *msg) __attribute__ ((__noreturn__));
|
||||||
__attribute__ ((__noreturn__)) internal_function;
|
|
||||||
extern void __fortify_fail_abort (_Bool, const char *msg)
|
extern void __fortify_fail_abort (_Bool, const char *msg)
|
||||||
__attribute__ ((__noreturn__)) internal_function;
|
__attribute__ ((__noreturn__));
|
||||||
libc_hidden_proto (__fortify_fail)
|
libc_hidden_proto (__fortify_fail)
|
||||||
libc_hidden_proto (__fortify_fail_abort)
|
libc_hidden_proto (__fortify_fail_abort)
|
||||||
|
|
||||||
|
@ -36,9 +36,11 @@ longjmp_msg:
|
|||||||
cfi_register(%ebx,%ecx); \
|
cfi_register(%ebx,%ecx); \
|
||||||
LOAD_PIC_REG (bx); \
|
LOAD_PIC_REG (bx); \
|
||||||
leal longjmp_msg@GOTOFF(%ebx), %eax; \
|
leal longjmp_msg@GOTOFF(%ebx), %eax; \
|
||||||
|
movl %eax, (%esp); \
|
||||||
call HIDDEN_JUMPTARGET(__fortify_fail)
|
call HIDDEN_JUMPTARGET(__fortify_fail)
|
||||||
#else
|
#else
|
||||||
# define CALL_FAIL movl $longjmp_msg, %eax; \
|
# define CALL_FAIL movl $longjmp_msg, %eax; \
|
||||||
|
movl %eax, (%esp); \
|
||||||
call HIDDEN_JUMPTARGET(__fortify_fail)
|
call HIDDEN_JUMPTARGET(__fortify_fail)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -33,9 +33,11 @@ longjmp_msg:
|
|||||||
cfi_register(%ebx,%ecx); \
|
cfi_register(%ebx,%ecx); \
|
||||||
LOAD_PIC_REG (bx); \
|
LOAD_PIC_REG (bx); \
|
||||||
leal longjmp_msg@GOTOFF(%ebx), %eax; \
|
leal longjmp_msg@GOTOFF(%ebx), %eax; \
|
||||||
|
movl %eax, (%esp); \
|
||||||
call HIDDEN_JUMPTARGET(__fortify_fail)
|
call HIDDEN_JUMPTARGET(__fortify_fail)
|
||||||
#else
|
#else
|
||||||
# define CALL_FAIL movl $longjmp_msg, %eax; \
|
# define CALL_FAIL movl $longjmp_msg, %eax; \
|
||||||
|
movl %eax, (%esp); \
|
||||||
call HIDDEN_JUMPTARGET(__fortify_fail)
|
call HIDDEN_JUMPTARGET(__fortify_fail)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user