summaryrefslogtreecommitdiff
path: root/libc/sysdeps/mach
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2008-03-27 13:22:15 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2008-03-27 13:22:15 +0000
commitca1bbff0ee443807a36d8c7bf798672589ac37f6 (patch)
tree5c44adf6728cbd3c1c4cf17f106a8c7801206be2 /libc/sysdeps/mach
parent1bc40ce17eb32360b2e6e8752e0c5a4ef729e375 (diff)
downloadeglibc2-ca1bbff0ee443807a36d8c7bf798672589ac37f6.tar.gz
Merge changes between r5247 and r5678 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@5679 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/sysdeps/mach')
-rw-r--r--libc/sysdeps/mach/hurd/i386/trampoline.c6
-rw-r--r--libc/sysdeps/mach/hurd/if_index.c3
2 files changed, 6 insertions, 3 deletions
diff --git a/libc/sysdeps/mach/hurd/i386/trampoline.c b/libc/sysdeps/mach/hurd/i386/trampoline.c
index dddc6f3ef..99d930836 100644
--- a/libc/sysdeps/mach/hurd/i386/trampoline.c
+++ b/libc/sysdeps/mach/hurd/i386/trampoline.c
@@ -1,5 +1,5 @@
/* Set thread_state for sighandler, and sigcontext to recover. i386 version.
- Copyright (C) 1994,1995,1996,1997,1998,1999,2005
+ Copyright (C) 1994,1995,1996,1997,1998,1999,2005,2008
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -21,6 +21,7 @@
#include <hurd/signal.h>
#include <hurd/userlink.h>
#include <thread_state.h>
+#include <mach/machine/eflags.h>
#include <assert.h>
#include <errno.h>
#include "hurdfault.h"
@@ -218,6 +219,9 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, __sighandler_t handler,
/* We pass the handler function to the trampoline code in %edx. */
state->basic.edx = (int) handler;
+ /* The x86 ABI says the DF bit is clear on entry to any function. */
+ state->basic.efl &= ~EFL_DF;
+
return scp;
}
diff --git a/libc/sysdeps/mach/hurd/if_index.c b/libc/sysdeps/mach/hurd/if_index.c
index 664a3a1ef..4ecda2298 100644
--- a/libc/sysdeps/mach/hurd/if_index.c
+++ b/libc/sysdeps/mach/hurd/if_index.c
@@ -59,8 +59,7 @@ if_freenameindex (struct if_nameindex *ifn)
struct if_nameindex *ptr = ifn;
while (ptr->if_name || ptr->if_index)
{
- if (ptr->if_name)
- free (ptr->if_name);
+ free (ptr->if_name);
++ptr;
}
free (ifn);