mirror of git://sourceware.org/git/glibc.git
Update.
1999-02-03 Ulrich Drepper <drepper@cygnus.com> * elf/dlsym.c (dlsym_doit): If no symbol for RTLD_NEXT is found initialize ref element of args object so that dlsym does not dump a core. * elf/dlvsym.c (dlvsym_doit): Likewise.
This commit is contained in:
parent
f549233427
commit
649ad05add
|
|
@ -1,3 +1,10 @@
|
||||||
|
1999-02-03 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* elf/dlsym.c (dlsym_doit): If no symbol for RTLD_NEXT is found
|
||||||
|
initialize ref element of args object so that dlsym does not dump
|
||||||
|
a core.
|
||||||
|
* elf/dlvsym.c (dlvsym_doit): Likewise.
|
||||||
|
|
||||||
1999-02-03 Jakub Jelinek <jj@ultra.linux.cz>
|
1999-02-03 Jakub Jelinek <jj@ultra.linux.cz>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S: Set branch
|
* sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S: Set branch
|
||||||
|
|
|
||||||
12
elf/dlsym.c
12
elf/dlsym.c
|
|
@ -1,5 +1,5 @@
|
||||||
/* Look up a symbol in a shared object loaded by `dlopen'.
|
/* Look up a symbol in a shared object loaded by `dlopen'.
|
||||||
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
|
@ -65,6 +65,16 @@ RTLD_NEXT used in code not dynamically loaded"));
|
||||||
|
|
||||||
args->loadbase = _dl_lookup_symbol_skip (args->name, &args->ref,
|
args->loadbase = _dl_lookup_symbol_skip (args->name, &args->ref,
|
||||||
l->l_local_scope, NULL, match);
|
l->l_local_scope, NULL, match);
|
||||||
|
|
||||||
|
if (args->loadbase == 0)
|
||||||
|
{
|
||||||
|
/* This means that no such symbol is defined. In this case we
|
||||||
|
have to provide a phony Elfxx_Sym entry since the value is
|
||||||
|
referenced in `dlsym'. */
|
||||||
|
static const ElfW(Sym) null_result;
|
||||||
|
|
||||||
|
args->ref = &null_result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
12
elf/dlvsym.c
12
elf/dlvsym.c
|
|
@ -1,5 +1,5 @@
|
||||||
/* Look up a versioned symbol in a shared object loaded by `dlopen'.
|
/* Look up a versioned symbol in a shared object loaded by `dlopen'.
|
||||||
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
|
@ -71,6 +71,16 @@ RTLD_NEXT used in code not dynamically loaded"));
|
||||||
l->l_local_scope,
|
l->l_local_scope,
|
||||||
NULL, &args->version,
|
NULL, &args->version,
|
||||||
match);
|
match);
|
||||||
|
|
||||||
|
if (args->loadbase == 0)
|
||||||
|
{
|
||||||
|
/* This means that no such symbol is defined. In this case we
|
||||||
|
have to provide a phony Elfxx_Sym entry since the value is
|
||||||
|
referenced in `dlsym'. */
|
||||||
|
static const ElfW(Sym) null_result;
|
||||||
|
|
||||||
|
args->ref = &null_result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue