From 3fd194b99e161486c60c70bf98a33e330dc0f9e7 Mon Sep 17 00:00:00 2001 From: Brian Hackett Date: Thu, 8 Nov 2018 13:15:58 -1000 Subject: [PATCH] Bug 1505959 - Support some calls in the middleman made by the socket transport service thread, r=lsmyth. --HG-- extra : rebase_source : e9de7d847bf7e38026ff26cc69249af06876e0fb --- .../recordreplay/ProcessRedirectDarwin.cpp | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/toolkit/recordreplay/ProcessRedirectDarwin.cpp b/toolkit/recordreplay/ProcessRedirectDarwin.cpp index c9692ecd6c87..632df365274b 100644 --- a/toolkit/recordreplay/ProcessRedirectDarwin.cpp +++ b/toolkit/recordreplay/ProcessRedirectDarwin.cpp @@ -70,7 +70,8 @@ namespace recordreplay { MACRO(shm_open, RR_SaveRvalHadErrorNegative) \ MACRO(socket, RR_SaveRvalHadErrorNegative) \ MACRO(kqueue, RR_SaveRvalHadErrorNegative) \ - MACRO(pipe, RR_SaveRvalHadErrorNegative>) \ + MACRO(pipe, RR_SaveRvalHadErrorNegative>, \ + nullptr, nullptr, Preamble_SetError) \ MACRO(close, RR_SaveRvalHadErrorNegative) \ MACRO(__close_nocancel, RR_SaveRvalHadErrorNegative) \ MACRO(mkdir, RR_SaveRvalHadErrorNegative) \ @@ -92,7 +93,7 @@ namespace recordreplay { MACRO(issetugid, RR_ScalarRval) \ MACRO(__gettid, RR_ScalarRval) \ MACRO(getpid, nullptr, Preamble_getpid) \ - MACRO(fcntl, RR_SaveRvalHadErrorNegative, Preamble_fcntl) \ + MACRO(fcntl, RR_SaveRvalHadErrorNegative, Preamble_fcntl, nullptr, MiddlemanPreamble_fcntl) \ MACRO(getattrlist, RR_SaveRvalHadErrorNegative>) \ MACRO(fstat$INODE64, \ RR_SaveRvalHadErrorNegative>, \ @@ -1083,6 +1084,23 @@ Preamble_fcntl(CallArguments* aArguments) return PreambleResult::Redirect; } +static PreambleResult +MiddlemanPreamble_fcntl(CallArguments* aArguments) +{ + auto& cmd = aArguments->Arg<1, size_t>(); + switch (cmd) { + case F_SETFL: + case F_SETFD: + case F_SETLK: + case F_SETLKW: + break; + default: + MOZ_CRASH(); + } + aArguments->Rval() = 0; + return PreambleResult::Veto; +} + static PreambleResult Preamble___disable_threadsignal(CallArguments* aArguments) {