checked in (request 33340)
OBS-URL: https://build.opensuse.org/package/show/Base:System/bash?expand=0&rev=26
This commit is contained in:
parent
e34d103d54
commit
d3b1f6eaad
@ -15,7 +15,7 @@
|
||||
|
||||
#if 0
|
||||
--- xmalloc.c
|
||||
+++ xmalloc.c 2010-02-24 08:32:51.452626384 +0000
|
||||
+++ xmalloc.c 2010-02-15 15:36:40.113797875 +0000
|
||||
@@ -35,6 +35,11 @@
|
||||
# include "ansi_stdlib.h"
|
||||
#endif /* HAVE_STDLIB_H */
|
||||
@ -121,27 +121,3 @@
|
||||
if (temp == 0)
|
||||
allocerr ("xrealloc", bytes);
|
||||
|
||||
@@ -145,7 +204,22 @@ xfree (string)
|
||||
PTR_T string;
|
||||
{
|
||||
if (string)
|
||||
- free (string);
|
||||
+ {
|
||||
+ sigset_t set, oset;
|
||||
+ int blocked_sigs = 0;
|
||||
+
|
||||
+ /* Block all signals in case we are executed from a signal handler. */
|
||||
+ if (interrupt_immediately || signal_is_trapped (SIGINT) || signal_is_trapped (SIGCHLD))
|
||||
+ {
|
||||
+ block_signals (&set, &oset);
|
||||
+ blocked_sigs = 1;
|
||||
+ }
|
||||
+
|
||||
+ free (string);
|
||||
+
|
||||
+ if (blocked_sigs)
|
||||
+ unblock_signals (&set, &oset);
|
||||
+ }
|
||||
}
|
||||
|
||||
#ifdef USING_BASH_MALLOC
|
||||
|
@ -1,8 +1,3 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 24 09:55:03 CET 2010 - werner@suse.de
|
||||
|
||||
- Avoid hang due malloc()/free() within signal handler (bnc#522351)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 18 11:05:13 CET 2010 - werner@suse.de
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user