mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
31 lines
1 KiB
Diff
31 lines
1 KiB
Diff
diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c
|
|
index 0f2ad8c51..407af7f76 100644
|
|
--- a/coregrind/m_syswrap/syswrap-amd64-linux.c
|
|
+++ b/coregrind/m_syswrap/syswrap-amd64-linux.c
|
|
@@ -249,6 +249,7 @@ PRE(sys_rt_sigreturn)
|
|
PRE(sys_arch_prctl)
|
|
{
|
|
ThreadState* tst;
|
|
+ Bool known_option = True;
|
|
PRINT( "arch_prctl ( %ld, %lx )", SARG1, ARG2 );
|
|
|
|
vg_assert(VG_(is_valid_tid)(tid));
|
|
@@ -283,13 +284,16 @@ PRE(sys_arch_prctl)
|
|
POST_MEM_WRITE(ARG2, sizeof(unsigned long));
|
|
}
|
|
else {
|
|
- VG_(core_panic)("Unsupported arch_prctl option");
|
|
+ known_option = False;
|
|
}
|
|
|
|
/* Note; the Status writeback to guest state that happens after
|
|
this wrapper returns does not change guest_FS_CONST or guest_GS_CONST;
|
|
hence that direct assignment to the guest state is safe here. */
|
|
- SET_STATUS_Success( 0 );
|
|
+ if (known_option)
|
|
+ SET_STATUS_Success( 0 );
|
|
+ else
|
|
+ SET_STATUS_Failure( VKI_EINVAL );
|
|
}
|
|
|
|
// Parts of this are amd64-specific, but the *PEEK* cases are generic.
|