mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-30 12:31:53 +08:00
Update.
2003-05-05 Ulrich Drepper <drepper@redhat.com> * sysdeps/generic/libc-start.c [!SHARED]: Call __libc_check_standard_fds after __libc_init_first.
This commit is contained in:
parent
e55674c65e
commit
9946f75ad4
@ -1,3 +1,8 @@
|
||||
2003-05-05 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* sysdeps/generic/libc-start.c [!SHARED]: Call
|
||||
__libc_check_standard_fds after __libc_init_first.
|
||||
|
||||
2003-05-05 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* Makerules (common-before-compile): New variable.
|
||||
|
@ -119,7 +119,7 @@ typedef struct
|
||||
# include "useldt.h" /* For the structure. */
|
||||
# define TLS_DO_MODIFY_LDT_KERNEL_CHECK(doit) \
|
||||
(__builtin_expect (GL(dl_osversion) < 131939, 0) \
|
||||
? "kernel too old for thread-local storage support" \
|
||||
? "kernel too old for thread-local storage support\n" \
|
||||
: (doit))
|
||||
# endif
|
||||
|
||||
@ -142,7 +142,7 @@ TLS_DO_MODIFY_LDT_KERNEL_CHECK( \
|
||||
"d" (sizeof (ldt_entry))); \
|
||||
__builtin_expect (result, 0) == 0 \
|
||||
? ({ asm ("movw %w0, %%gs" : : "q" ((nr) * 8 + 7)); NULL; }) \
|
||||
: "cannot set up LDT for thread-local storage"; \
|
||||
: "cannot set up LDT for thread-local storage\n"; \
|
||||
}))
|
||||
|
||||
# define TLS_DO_SET_THREAD_AREA(descr, secondcall) \
|
||||
@ -172,7 +172,7 @@ TLS_DO_MODIFY_LDT_KERNEL_CHECK( \
|
||||
# ifdef __ASSUME_SET_THREAD_AREA_SYSCALL
|
||||
# define TLS_SETUP_GS_SEGMENT(descr, secondcall) \
|
||||
(TLS_DO_SET_THREAD_AREA (descr, secondcall) \
|
||||
? "set_thread_area failed when setting up thread-local storage" : NULL)
|
||||
? "set_thread_area failed when setting up thread-local storage\n" : NULL)
|
||||
# elif defined __NR_set_thread_area
|
||||
# define TLS_SETUP_GS_SEGMENT(descr, secondcall) \
|
||||
(TLS_DO_SET_THREAD_AREA (descr, secondcall) \
|
||||
|
@ -141,13 +141,6 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
|
||||
if (__pthread_initialize_minimal)
|
||||
# endif
|
||||
__pthread_initialize_minimal ();
|
||||
|
||||
/* Some security at this point. Prevent starting a SUID binary where
|
||||
the standard file descriptors are not opened. We have to do this
|
||||
only for statically linked applications since otherwise the dynamic
|
||||
loader did the work already. */
|
||||
if (__builtin_expect (__libc_enable_secure, 0))
|
||||
__libc_check_standard_fds ();
|
||||
#endif
|
||||
|
||||
/* Register the destructor of the dynamic linker if there is any. */
|
||||
@ -165,6 +158,15 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
|
||||
if (fini)
|
||||
__cxa_atexit ((void (*) (void *)) fini, NULL, NULL);
|
||||
|
||||
#ifndef SHARED
|
||||
/* Some security at this point. Prevent starting a SUID binary where
|
||||
the standard file descriptors are not opened. We have to do this
|
||||
only for statically linked applications since otherwise the dynamic
|
||||
loader did the work already. */
|
||||
if (__builtin_expect (__libc_enable_secure, 0))
|
||||
__libc_check_standard_fds ();
|
||||
#endif
|
||||
|
||||
/* Call the initializer of the program, if any. */
|
||||
#ifdef SHARED
|
||||
if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_IMPCALLS, 0))
|
||||
|
Loading…
Reference in New Issue
Block a user