From 3bb74aae3da540865b1208f78936c8975929cb11 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Mon, 23 Apr 2012 13:51:56 +0300 Subject: [PATCH] freebsd: Account for the possible ERESTART handling of the syscalls. --- src/x86_64/Gos-freebsd.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/x86_64/Gos-freebsd.c b/src/x86_64/Gos-freebsd.c index 3ef99261..71695c65 100644 --- a/src/x86_64/Gos-freebsd.c +++ b/src/x86_64/Gos-freebsd.c @@ -77,8 +77,9 @@ eb fd jmp 0b */ if ((ret = (*a->access_mem) (as, ip - 5, &b0, 0, arg)) < 0) return (0); - b0 &= 0xffffffffff; - if (b0 == 0x000000050fca8949) + Debug (12, "b0 0x%lx\n", b0); + if ((b0 & 0xffffffffffffff) == 0x050fca89490000 || + (b0 & 0xffffffffff) == 0x050fca8949) { c->sigcontext_format = X86_64_SCF_FREEBSD_SYSCALL; return (c->sigcontext_format);