mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-08 17:42:12 +03:00
Update.
1998-08-28 09:22 Ulrich Drepper <drepper@cygnus.com> * elf/rtld.c (process_envvars): Fix copy&paste error. * malloc/malloc.c (malloc_hook_ini): Don't overwrite realloc and memalign hook. (realloc_hook_ini): Don't overwrite memalign hook. (memalign_hook_ini): Don't overwrite malloc and memalign hooks. Reported by Philippe Troin <phil@fifi.org>. * malloc/mcheck.c (mprobe): Call checkhdr with adjusted pointer. Patch by Philippe Troin <phil@fifi.org>. 1998-08-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/generic/segfault.c (install_handler): Protect the non-POSIX signals with #ifdef. (catch_segfault): Add missing mode parameter for open. * debug/catchsegv.sh: Avoid termination message from shell. Allow other termination signals. 1998-08-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * debug/Makefile (distribute): Add register-dump.h. 1998-08-28 10:41 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
This commit is contained in:
27
ChangeLog
27
ChangeLog
@@ -1,4 +1,29 @@
|
|||||||
Fri Aug 28 10:41:38 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
1998-08-28 09:22 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* elf/rtld.c (process_envvars): Fix copy&paste error.
|
||||||
|
|
||||||
|
* malloc/malloc.c (malloc_hook_ini): Don't overwrite realloc and
|
||||||
|
memalign hook.
|
||||||
|
(realloc_hook_ini): Don't overwrite memalign hook.
|
||||||
|
(memalign_hook_ini): Don't overwrite malloc and memalign hooks.
|
||||||
|
Reported by Philippe Troin <phil@fifi.org>.
|
||||||
|
|
||||||
|
* malloc/mcheck.c (mprobe): Call checkhdr with adjusted pointer.
|
||||||
|
Patch by Philippe Troin <phil@fifi.org>.
|
||||||
|
|
||||||
|
1998-08-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* sysdeps/generic/segfault.c (install_handler): Protect the
|
||||||
|
non-POSIX signals with #ifdef.
|
||||||
|
(catch_segfault): Add missing mode parameter for open.
|
||||||
|
* debug/catchsegv.sh: Avoid termination message from shell. Allow
|
||||||
|
other termination signals.
|
||||||
|
|
||||||
|
1998-08-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
|
* debug/Makefile (distribute): Add register-dump.h.
|
||||||
|
|
||||||
|
1998-08-28 10:41 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/m68k/register-dump.h: New file.
|
* sysdeps/unix/sysv/linux/m68k/register-dump.h: New file.
|
||||||
|
|
||||||
|
@@ -52,15 +52,17 @@ fi
|
|||||||
|
|
||||||
segv_output=`basename "$prog"`.segv.$$
|
segv_output=`basename "$prog"`.segv.$$
|
||||||
|
|
||||||
|
# Redirect stderr to avoid termination message from shell.
|
||||||
|
(exec 3>&2 2>/dev/null
|
||||||
LD_PRELOAD=${LD_PRELOAD:+${LD_PRELOAD}:}@SLIB@/libSegFault.so \
|
LD_PRELOAD=${LD_PRELOAD:+${LD_PRELOAD}:}@SLIB@/libSegFault.so \
|
||||||
SEGFAULT_USE_ALTSTACK=1 \
|
SEGFAULT_USE_ALTSTACK=1 \
|
||||||
SEGFAULT_OUTPUT_NAME=$segv_output \
|
SEGFAULT_OUTPUT_NAME=$segv_output \
|
||||||
"$prog" ${1+"$@"}
|
"$prog" ${1+"$@"} 2>&3 3>&-)
|
||||||
exval=$?
|
exval=$?
|
||||||
|
|
||||||
# Check for a segmentation error.
|
# Check for signal termination.
|
||||||
if test $exval -eq 139 && test -f "$segv_output"; then
|
if test $exval -gt 128 && test -f "$segv_output"; then
|
||||||
# We caught a segmentation error. The output is in the file with the
|
# The program caught a signal. The output is in the file with the
|
||||||
# name we have in SEGFAULT_OUTPUT_NAME. In the output the names of
|
# name we have in SEGFAULT_OUTPUT_NAME. In the output the names of
|
||||||
# functions in shared objects are available, but names in the static
|
# functions in shared objects are available, but names in the static
|
||||||
# part of the program are not. We use addr2line to get this information.
|
# part of the program are not. We use addr2line to get this information.
|
||||||
|
@@ -1169,7 +1169,7 @@ process_envvars (enum mode *modep, int *lazyp)
|
|||||||
/* Path where the binary is found. */
|
/* Path where the binary is found. */
|
||||||
if (!__libc_enable_secure
|
if (!__libc_enable_secure
|
||||||
&& memcmp (&envline[3], "ORIGIN_PATH", 11) == 0)
|
&& memcmp (&envline[3], "ORIGIN_PATH", 11) == 0)
|
||||||
_dl_hwcap_mask = strtoul (&envline[15], NULL, 0);
|
_dl_origin_path = &envline[15];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 12:
|
case 12:
|
||||||
|
@@ -1702,8 +1702,6 @@ malloc_hook_ini(sz) size_t sz;
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
__malloc_hook = NULL;
|
__malloc_hook = NULL;
|
||||||
__realloc_hook = NULL;
|
|
||||||
__memalign_hook = NULL;
|
|
||||||
ptmalloc_init();
|
ptmalloc_init();
|
||||||
return mALLOc(sz);
|
return mALLOc(sz);
|
||||||
}
|
}
|
||||||
@@ -1718,7 +1716,6 @@ realloc_hook_ini(ptr, sz, caller)
|
|||||||
{
|
{
|
||||||
__malloc_hook = NULL;
|
__malloc_hook = NULL;
|
||||||
__realloc_hook = NULL;
|
__realloc_hook = NULL;
|
||||||
__memalign_hook = NULL;
|
|
||||||
ptmalloc_init();
|
ptmalloc_init();
|
||||||
return rEALLOc(ptr, sz);
|
return rEALLOc(ptr, sz);
|
||||||
}
|
}
|
||||||
@@ -1731,8 +1728,6 @@ memalign_hook_ini(sz, alignment, caller)
|
|||||||
size_t sz; size_t alignment; const __malloc_ptr_t caller;
|
size_t sz; size_t alignment; const __malloc_ptr_t caller;
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
__malloc_hook = NULL;
|
|
||||||
__realloc_hook = NULL;
|
|
||||||
__memalign_hook = NULL;
|
__memalign_hook = NULL;
|
||||||
ptmalloc_init();
|
ptmalloc_init();
|
||||||
return mEMALIGn(sz, alignment);
|
return mEMALIGn(sz, alignment);
|
||||||
|
@@ -246,5 +246,5 @@ mcheck (func)
|
|||||||
enum mcheck_status
|
enum mcheck_status
|
||||||
mprobe (__ptr_t ptr)
|
mprobe (__ptr_t ptr)
|
||||||
{
|
{
|
||||||
return mcheck_used ? checkhdr (ptr) : MCHECK_DISABLED;
|
return mcheck_used ? checkhdr (((struct hdr *) ptr) - 1) : MCHECK_DISABLED;
|
||||||
}
|
}
|
||||||
|
@@ -90,7 +90,7 @@ catch_segfault (int signal, SIGCONTEXT ctx)
|
|||||||
fname = getenv ("SEGFAULT_OUTPUT_NAME");
|
fname = getenv ("SEGFAULT_OUTPUT_NAME");
|
||||||
if (fname != NULL && fname[0] != '\0')
|
if (fname != NULL && fname[0] != '\0')
|
||||||
{
|
{
|
||||||
fd = open (fname, O_TRUNC | O_WRONLY | O_CREAT);
|
fd = open (fname, O_TRUNC | O_WRONLY | O_CREAT, 0666);
|
||||||
if (fd == -1)
|
if (fd == -1)
|
||||||
fd = 2;
|
fd = 2;
|
||||||
}
|
}
|
||||||
@@ -182,8 +182,12 @@ install_handler (void)
|
|||||||
|
|
||||||
INSTALL_FOR_SIG (SIGSEGV, "segv");
|
INSTALL_FOR_SIG (SIGSEGV, "segv");
|
||||||
INSTALL_FOR_SIG (SIGILL, "ill");
|
INSTALL_FOR_SIG (SIGILL, "ill");
|
||||||
|
#ifdef SIGBUS
|
||||||
INSTALL_FOR_SIG (SIGBUS, "bus");
|
INSTALL_FOR_SIG (SIGBUS, "bus");
|
||||||
|
#endif
|
||||||
|
#ifdef SIGSTKFLT
|
||||||
INSTALL_FOR_SIG (SIGSTKFLT, "stkflt");
|
INSTALL_FOR_SIG (SIGSTKFLT, "stkflt");
|
||||||
|
#endif
|
||||||
INSTALL_FOR_SIG (SIGABRT, "abrt");
|
INSTALL_FOR_SIG (SIGABRT, "abrt");
|
||||||
INSTALL_FOR_SIG (SIGFPE, "fpe");
|
INSTALL_FOR_SIG (SIGFPE, "fpe");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user