Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1429207139-10359-1-git-send-email-amonakov@ispras.ru>
Date: Thu, 16 Apr 2015 20:58:59 +0300
From: Alexander Monakov <amonakov@...ras.ru>
To: musl@...ts.openwall.com
Cc: Alexander Monakov <amonakov@...ras.ru>
Subject: [PATCH] replace 'hlt' by 'ud2' in i386/x32/x86_64 a_crash implementations

---
ud2 is also what GCC and Clang use to implement __builtin_trap()

ud2 causes SIGILL rather than SIGSEGV; SIGSEGV is more likely to have a custom
signal handler installed

 arch/i386/atomic.h   | 2 +-
 arch/x32/atomic.h    | 2 +-
 arch/x86_64/atomic.h | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/i386/atomic.h b/arch/i386/atomic.h
index 4fe7bde..2f78d31 100644
--- a/arch/i386/atomic.h
+++ b/arch/i386/atomic.h
@@ -103,7 +103,7 @@ static inline void a_barrier()
 
 static inline void a_crash()
 {
-	__asm__ __volatile__( "hlt" : : : "memory" );
+	__asm__ __volatile__( "ud2" : : : "memory" );
 }
 
 
diff --git a/arch/x32/atomic.h b/arch/x32/atomic.h
index 333098c..a8e7603 100644
--- a/arch/x32/atomic.h
+++ b/arch/x32/atomic.h
@@ -98,7 +98,7 @@ static inline void a_barrier()
 
 static inline void a_crash()
 {
-	__asm__ __volatile__( "hlt" : : : "memory" );
+	__asm__ __volatile__( "ud2" : : : "memory" );
 }
 
 
diff --git a/arch/x86_64/atomic.h b/arch/x86_64/atomic.h
index 333098c..a8e7603 100644
--- a/arch/x86_64/atomic.h
+++ b/arch/x86_64/atomic.h
@@ -98,7 +98,7 @@ static inline void a_barrier()
 
 static inline void a_crash()
 {
-	__asm__ __volatile__( "hlt" : : : "memory" );
+	__asm__ __volatile__( "ud2" : : : "memory" );
 }
 
 
-- 
2.1.3

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.