summary refs log tree commit diff
path: root/elf/rtld.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-06-06 20:49:22 +0000
committerRoland McGrath <roland@gnu.org>1996-06-06 20:49:22 +0000
commit4d02a5b18a0c2702bfca949bc60187f53d6f39d2 (patch)
treec01194451c8f80184947b404186f744bb84fa9df /elf/rtld.c
parente60062b76983ec534a6cb2ca77c664e3bc1e29e7 (diff)
downloadglibc-4d02a5b18a0c2702bfca949bc60187f53d6f39d2.tar.gz
glibc-4d02a5b18a0c2702bfca949bc60187f53d6f39d2.tar.xz
glibc-4d02a5b18a0c2702bfca949bc60187f53d6f39d2.zip
Thu Jun 6 16:12:39 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
	* hurd/hurdsig.c (_hurd_internal_post_signal): For SIGNO==0 pending
	check, deliver a pending blocked signal if its action might be to
	ignore.
	* sysdeps/mach/hurd/sigaction.c: If new action is SIG_IGN or SIG_DFL
	and SIG is pending, wake up signal thread to check us.

	* hurd/hurdsig.c (_hurd_internal_post_signal): Don't mark a signal
	pending while blocked or stopped when the action is to ignore it.

	* hurd/hurdsig.c (_hurd_internal_post_signal: resume): Only set
	SS_SUSPENDED when the thread is really suspended.

	* elf/rtld.c (dl_main): Don't dereference _dl_rtld_map.l_next if null.
Diffstat (limited to 'elf/rtld.c')
-rw-r--r--elf/rtld.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/elf/rtld.c b/elf/rtld.c
index 032bb8ee87..b34d8598bb 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -263,7 +263,8 @@ of this helper program; chances are you did not intend to run this program.\n",
       /* No DT_NEEDED entry referred to the interpreter object itself,
 	 so remove it from the list of visible objects.  */
       _dl_rtld_map.l_prev->l_next = _dl_rtld_map.l_next;
-      _dl_rtld_map.l_next->l_prev = _dl_rtld_map.l_prev;
+      if (_dl_rtld_map.l_next)
+	_dl_rtld_map.l_next->l_prev = _dl_rtld_map.l_prev;
     }
 
   if (list_only)