0

Migrate to NOTREACHED() in ipc/ and sandbox/

NOTREACHED() and NOTREACHED_IN_MIGRATION() are both CHECK-fatal now.
The former is [[noreturn]] so this CL also performs dead-code removal
after the NOTREACHED().

This CL does not attempt to do additional rewrites of any surrounding
code, like:

if (!foo) {
  NOTREACHED();
}

to CHECK(foo);

Those transforms take a non-trivial amount of time (and there are
thousands of instances). Cleanup can be left as an exercise for the
reader.

Bug: 40580068
Low-Coverage-Reason: OTHER Should-be-unreachable code
Change-Id: I4060bd0afb2d58343599ba985d336e305b7c0574
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5872433
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
Reviewed-by: Alex Gough <ajgo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1359630}
This commit is contained in:
Peter Boström
2024-09-24 22:38:10 +00:00
committed by Chromium LUCI CQ
parent ade1c2e503
commit b7e3e0824c
42 changed files with 68 additions and 136 deletions

@ -24,7 +24,7 @@ void ParamTraits<HandleWin>::Write(base::Pickle* m, const param_type& p) {
scoped_refptr<IPC::internal::HandleAttachmentWin> attachment(
new IPC::internal::HandleAttachmentWin(p.get_handle()));
if (!m->WriteAttachment(std::move(attachment)))
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
// static

@ -67,15 +67,15 @@ Channel::AssociatedInterfaceSupport* Channel::GetAssociatedInterfaceSupport() {
}
void Channel::Pause() {
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
void Channel::Unpause(bool flush) {
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
void Channel::Flush() {
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
void Channel::SetUrgentMessageObserver(UrgentMessageObserver* observer) {

@ -92,7 +92,7 @@ class ThreadSafeChannelProxy : public mojo::ThreadSafeProxy {
mojo::Message& message,
std::unique_ptr<mojo::MessageReceiver> responder) override {
// We don't bother supporting this because it's not used in practice.
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
private:

@ -276,7 +276,7 @@ class ListenerThatBindsATestStructPasser : public IPC::Listener,
void OnChannelConnected(int32_t peer_pid) override {}
void OnChannelError() override { NOTREACHED_IN_MIGRATION(); }
void OnChannelError() override { NOTREACHED(); }
void OnAssociatedInterfaceRequest(
const std::string& interface_name,
@ -289,7 +289,7 @@ class ListenerThatBindsATestStructPasser : public IPC::Listener,
private:
// IPC::mojom::TestStructPasser:
void Pass(IPC::mojom::TestStructPtr) override { NOTREACHED_IN_MIGRATION(); }
void Pass(IPC::mojom::TestStructPtr) override { NOTREACHED(); }
mojo::AssociatedReceiver<IPC::mojom::TestStructPasser> receiver_{this};
};
@ -314,7 +314,7 @@ class ListenerThatExpectsNoError : public IPC::Listener {
std::move(connect_closure_).Run();
}
void OnChannelError() override { NOTREACHED_IN_MIGRATION(); }
void OnChannelError() override { NOTREACHED(); }
private:
base::OnceClosure connect_closure_;
@ -797,9 +797,7 @@ class ListenerWithSimpleProxyAssociatedInterface
std::move(callback).Run(next_expected_value_);
}
void RequestValue(RequestValueCallback callback) override {
NOTREACHED_IN_MIGRATION();
}
void RequestValue(RequestValueCallback callback) override { NOTREACHED(); }
void RequestQuit(RequestQuitCallback callback) override {
std::move(callback).Run();
@ -1176,7 +1174,7 @@ class SimpleTestClientImpl : public IPC::mojom::SimpleTestClient,
void BindSync(
mojo::PendingAssociatedReceiver<IPC::mojom::SimpleTestClient> receiver,
BindSyncCallback callback) override {
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
void GetReceiverWithQueuedSyncMessage(
@ -1810,10 +1808,7 @@ class ListenerThatVerifiesPeerPid : public TestListenerBase {
RunQuitClosure();
}
bool OnMessageReceived(const IPC::Message& message) override {
NOTREACHED_IN_MIGRATION();
return true;
}
bool OnMessageReceived(const IPC::Message& message) override { NOTREACHED(); }
};
// The global PID is only used on systems that use the zygote. Hence, this

@ -382,7 +382,7 @@ bool ChannelNacl::DidEmptyInputBuffers() {
void ChannelNacl::HandleInternalMessage(const Message& msg) {
// The trusted side IPC::Channel should handle the "hello" handshake; we
// should not receive the "Hello" message.
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
// Channel's methods

@ -291,7 +291,7 @@ void ChannelProxy::Context::OnRemoveFilter(MessageFilter* filter) {
}
}
NOTREACHED_IN_MIGRATION() << "filter to be removed not found";
NOTREACHED() << "filter to be removed not found";
}
// Called on the listener's thread

@ -103,8 +103,7 @@ mojo::ScopedHandle MessageAttachment::TakeMojoHandle() {
default:
break;
}
NOTREACHED_IN_MIGRATION();
return mojo::ScopedHandle();
NOTREACHED();
}
// static
@ -155,8 +154,7 @@ scoped_refptr<MessageAttachment> MessageAttachment::CreateFromMojoHandle(
platform_file, internal::HandleAttachmentWin::FROM_WIRE);
}
#endif
NOTREACHED_IN_MIGRATION();
return nullptr;
NOTREACHED();
}
} // namespace IPC

@ -396,11 +396,6 @@
} \
break;
#define IPC_MESSAGE_UNHANDLED_ERROR() \
IPC_MESSAGE_UNHANDLED(NOTREACHED_IN_MIGRATION() \
<< "Invalid message with type = " \
<< ipc_message__.type())
#define IPC_END_MESSAGE_MAP() \
} \
}

@ -53,7 +53,7 @@ class ThreadSafeProxy : public mojo::ThreadSafeProxy {
mojo::Message& message,
std::unique_ptr<mojo::MessageReceiver> responder) override {
// We don't bother supporting this because it's not used in practice.
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
private:

@ -189,11 +189,7 @@ class MessageT<Meta, std::tuple<Ins...>, std::tuple<Outs...>>
bool ok = ReadSendParam(msg, &send_params);
Message* reply = SyncMessage::GenerateReply(msg);
if (!ok) {
NOTREACHED_IN_MIGRATION()
<< "Error deserializing message " << msg->type();
reply->set_reply_error();
sender->Send(reply);
return false;
NOTREACHED() << "Error deserializing message " << msg->type();
}
ReplyParam reply_params;
@ -214,11 +210,7 @@ class MessageT<Meta, std::tuple<Ins...>, std::tuple<Outs...>>
bool ok = ReadSendParam(msg, &send_params);
Message* reply = SyncMessage::GenerateReply(msg);
if (!ok) {
NOTREACHED_IN_MIGRATION()
<< "Error deserializing message " << msg->type();
reply->set_reply_error();
obj->Send(reply);
return false;
NOTREACHED() << "Error deserializing message " << msg->type();
}
std::tuple<Message&> t = std::tie(*reply);
@ -237,11 +229,7 @@ class MessageT<Meta, std::tuple<Ins...>, std::tuple<Outs...>>
bool ok = ReadSendParam(msg, &send_params);
Message* reply = SyncMessage::GenerateReply(msg);
if (!ok) {
NOTREACHED_IN_MIGRATION()
<< "Error deserializing message " << msg->type();
reply->set_reply_error();
obj->Send(reply);
return false;
NOTREACHED() << "Error deserializing message " << msg->type();
}
std::tuple<Message&> t = std::tie(*reply);

@ -310,8 +310,7 @@ bool ReadValue(const base::Pickle* pickle,
break;
}
default:
NOTREACHED_IN_MIGRATION();
return false;
NOTREACHED();
}
return true;
@ -432,8 +431,7 @@ bool ParamTraits<double>::Read(const base::Pickle* m,
param_type* r) {
const char *data;
if (!iter->ReadBytes(&data, sizeof(*r))) {
NOTREACHED_IN_MIGRATION();
return false;
NOTREACHED();
}
memcpy(r, data, sizeof(param_type));
return true;
@ -565,10 +563,10 @@ void ParamTraits<base::FileDescriptor>::Write(base::Pickle* m,
if (p.auto_close) {
if (!m->WriteAttachment(
new internal::PlatformFileAttachment(base::ScopedFD(p.fd))))
NOTREACHED_IN_MIGRATION();
NOTREACHED();
} else {
if (!m->WriteAttachment(new internal::PlatformFileAttachment(p.fd)))
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
}
@ -620,7 +618,7 @@ void ParamTraits<base::ScopedFD>::Write(base::Pickle* m, const param_type& p) {
if (!m->WriteAttachment(new internal::PlatformFileAttachment(
std::move(const_cast<param_type&>(p))))) {
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
}
@ -705,7 +703,7 @@ void ParamTraits<zx::vmo>::Write(base::Pickle* m, const param_type& p) {
if (!m->WriteAttachment(new internal::HandleAttachmentFuchsia(
std::move(const_cast<param_type&>(p))))) {
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
}
@ -750,7 +748,7 @@ void ParamTraits<zx::channel>::Write(base::Pickle* m, const param_type& p) {
if (!m->WriteAttachment(new internal::HandleAttachmentFuchsia(
std::move(const_cast<param_type&>(p))))) {
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
}
@ -1485,8 +1483,7 @@ bool ParamTraits<MSG>::Read(const base::Pickle* m,
if (result && data_size == sizeof(MSG)) {
memcpy(r, data, sizeof(MSG));
} else {
result = false;
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
return result;

@ -147,7 +147,7 @@ class Worker : public Listener, public Sender {
SyncChannel* channel() { return channel_.get(); }
// Functions for derived classes to implement if they wish.
virtual void Run() { }
virtual void OnAnswer(int* answer) { NOTREACHED_IN_MIGRATION(); }
virtual void OnAnswer(int* answer) { NOTREACHED(); }
virtual void OnAnswerDelay(Message* reply_msg) {
// The message handler map below can only take one entry for
// SyncChannelTestMsg_AnswerToLife, so since some classes want
@ -159,7 +159,7 @@ class Worker : public Listener, public Sender {
SyncChannelTestMsg_AnswerToLife::WriteReplyParams(reply_msg, answer);
Send(reply_msg);
}
virtual void OnDouble(int in, int* out) { NOTREACHED_IN_MIGRATION(); }
virtual void OnDouble(int in, int* out) { NOTREACHED(); }
virtual void OnDoubleDelay(int in, Message* reply_msg) {
int result;
OnDouble(in, &result);
@ -167,9 +167,7 @@ class Worker : public Listener, public Sender {
Send(reply_msg);
}
virtual void OnNestedTestMsg(Message* reply_msg) {
NOTREACHED_IN_MIGRATION();
}
virtual void OnNestedTestMsg(Message* reply_msg) { NOTREACHED(); }
virtual SyncChannel* CreateChannel() {
std::unique_ptr<SyncChannel> channel = SyncChannel::Create(

@ -92,8 +92,7 @@ bool SyncMessage::ReadSyncHeader(const Message& msg, SyncHeader* header) {
base::PickleIterator iter(msg);
bool result = iter.ReadInt(&header->message_id);
if (!result) {
NOTREACHED_IN_MIGRATION();
return false;
NOTREACHED();
}
return true;

@ -16,7 +16,7 @@ namespace IPC {
void ParamTraits<MachPortMac>::Write(base::Pickle* m, const param_type& p) {
if (!m->WriteAttachment(
new IPC::internal::MachPortAttachmentMac(p.get_mach_port()))) {
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
}

@ -14,15 +14,13 @@ MessageRouter::MessageRouter() = default;
MessageRouter::~MessageRouter() = default;
bool MessageRouter::OnControlMessageReceived(const IPC::Message& msg) {
NOTREACHED_IN_MIGRATION()
NOTREACHED()
<< "should override in subclass if you care about control messages";
return false;
}
bool MessageRouter::Send(IPC::Message* msg) {
NOTREACHED_IN_MIGRATION()
NOTREACHED()
<< "should override in subclass if you care about sending messages";
return false;
}
bool MessageRouter::AddRoute(int32_t routing_id, IPC::Listener* listener) {

@ -22,8 +22,7 @@ IPC::MessageAttachment::Type TypeConverter<
case native::SerializedHandleType::FUCHSIA_HANDLE:
return IPC::MessageAttachment::Type::FUCHSIA_HANDLE;
}
NOTREACHED_IN_MIGRATION();
return IPC::MessageAttachment::Type::MOJO_HANDLE;
NOTREACHED();
}
// static
@ -42,8 +41,7 @@ native::SerializedHandleType TypeConverter<
case IPC::MessageAttachment::Type::FUCHSIA_HANDLE:
return native::SerializedHandleType::FUCHSIA_HANDLE;
}
NOTREACHED_IN_MIGRATION();
return native::SerializedHandleType::MOJO_HANDLE;
NOTREACHED();
}
} // namespace mojo

@ -227,7 +227,7 @@ SANDBOX_TEST(UnixDomainSocketTest, DoubleNamespace) {
CHECK_EQ(pid, sender_pid);
break;
default:
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
}

@ -335,8 +335,7 @@ ResultExpr RestrictKillTarget(pid_t target_pid, int sysno) {
case __NR_tkill:
return CrashSIGSYSKill();
default:
NOTREACHED_IN_MIGRATION();
return CrashSIGSYS();
NOTREACHED();
}
}
@ -384,8 +383,7 @@ ResultExpr RestrictSchedTarget(pid_t target_pid, int sysno) {
.Default(RewriteSchedSIGSYS());
}
default:
NOTREACHED_IN_MIGRATION();
return CrashSIGSYS();
NOTREACHED();
}
}

@ -146,8 +146,7 @@ bool SandboxBPF::SupportsSeccompSandbox(SeccompLevel level) {
case SeccompLevel::MULTI_THREADED:
return KernelSupportsSeccompTsync();
}
NOTREACHED_IN_MIGRATION();
return false;
NOTREACHED();
}
bool SandboxBPF::StartSandbox(SeccompLevel seccomp_level, bool enable_ibpb) {

@ -78,8 +78,7 @@ bool NamespaceUtils::KernelSupportsUnprivilegedNamespace(int type) {
path = "/proc/self/ns/uts";
break;
default:
NOTREACHED_IN_MIGRATION();
return false;
NOTREACHED();
}
return base::PathExists(base::FilePath(path));

@ -58,8 +58,7 @@ ScopedProcess::ScopedProcess(base::OnceClosure child_callback)
// Notify the parent that the closure has run.
CHECK_EQ(1, HANDLE_EINTR(write(pipe_fds_[1], kSynchronisationChar, 1)));
WaitForever();
NOTREACHED_IN_MIGRATION();
_exit(1);
NOTREACHED();
}
PCHECK(0 == IGNORE_EINTR(close(pipe_fds_[1])));

@ -102,8 +102,6 @@ void RunWhileTrue(const base::RepeatingCallback<bool(void)>& cb,
}
LOG(FATAL) << message << " (iterations: " << kMaxIterations << ")";
NOTREACHED_IN_MIGRATION();
}
bool IsMultiThreaded(int proc_fd) {

@ -97,8 +97,7 @@ int Yama::GetStatus() {
return STATUS_KNOWN | STATUS_PRESENT | STATUS_ENFORCING |
STATUS_STRICT_ENFORCING;
default:
NOTREACHED_IN_MIGRATION();
return 0;
NOTREACHED();
}
}

@ -121,7 +121,7 @@ void CheckPerm(const BrokerFilePermission& perm,
break;
default:
// Bad test case
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
// O_SYNC can be defined as (__O_SYNC|O_DSYNC)

@ -95,8 +95,7 @@ bool BrokerProcess::ForkSignalBasedBroker(
parent_pid);
broker_host_signal_based.LoopAndHandleRequests();
_exit(1);
NOTREACHED_IN_MIGRATION();
return false;
NOTREACHED();
}
bool BrokerProcess::Fork(BrokerSideCallback broker_process_init_callback) {

@ -215,7 +215,6 @@ ssize_t BrokerSimpleMessage::RecvMsgWithFlagsMultipleFds(
close(wire_fds[i]);
}
errno = EMSGSIZE;
NOTREACHED_IN_MIGRATION();
return -1;
}

@ -87,8 +87,7 @@ char* SeatbeltExtension::IssueToken(SeatbeltExtension::Type type,
return sandbox_extension_issue_file(APP_SANDBOX_READ_WRITE,
resource.c_str(), 0);
default:
NOTREACHED_IN_MIGRATION();
return nullptr;
NOTREACHED();
}
}

@ -248,8 +248,7 @@ std::unique_ptr<BPFBasePolicy> SandboxSeccompBPF::PolicyForSandboxType(
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
case sandbox::mojom::Sandbox::kZygoteIntermediateSandbox:
case sandbox::mojom::Sandbox::kNoSandbox:
NOTREACHED_IN_MIGRATION();
return nullptr;
NOTREACHED();
}
}

@ -228,11 +228,9 @@ sandbox::mojom::Sandbox SandboxTypeFromCommandLine(
}
#endif
CHECK(false)
NOTREACHED()
<< "Command line does not provide a valid sandbox configuration: "
<< command_line.GetCommandLineString();
NOTREACHED_IN_MIGRATION();
return Sandbox::kNoSandbox;
}
std::string StringFromUtilitySandboxType(Sandbox sandbox_type) {
@ -323,8 +321,7 @@ std::string StringFromUtilitySandboxType(Sandbox sandbox_type) {
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
case Sandbox::kZygoteIntermediateSandbox:
#endif
NOTREACHED_IN_MIGRATION();
return std::string();
NOTREACHED();
}
}
@ -422,11 +419,9 @@ sandbox::mojom::Sandbox UtilitySandboxTypeFromString(
return Sandbox::kLibassistant;
#endif // BUILDFLAG(ENABLE_CROS_LIBASSISTANT)
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
CHECK(false)
NOTREACHED()
<< "Command line does not provide a valid sandbox configuration: "
<< sandbox_string;
NOTREACHED_IN_MIGRATION();
return Sandbox::kUtility;
}
} // namespace policy

@ -622,8 +622,7 @@ ResultCode GenerateConfigForSandboxedProcess(const base::CommandLine& cmd_line,
result = AddGenericConfig(config);
if (result != SBOX_ALL_OK) {
NOTREACHED_IN_MIGRATION();
return result;
NOTREACHED();
}
std::string appcontainer_id;

@ -421,8 +421,7 @@ class TestSandboxDelegate : public SandboxDelegate {
sandbox::mojom::Sandbox GetSandboxType() override { return sandbox_type_; }
bool DisableDefaultPolicy() override { return false; }
bool GetAppContainerId(std::string* appcontainer_id) override {
NOTREACHED_IN_MIGRATION();
return false;
NOTREACHED();
}
MOCK_METHOD1(InitializeConfig, bool(TargetConfig* config));

@ -30,8 +30,7 @@ std::optional<DWORD> GetIntegrityLevelRid(IntegrityLevel integrity_level) {
return std::nullopt;
}
NOTREACHED_IN_MIGRATION();
return std::nullopt;
NOTREACHED();
}
DWORD SetObjectIntegrityLabel(HANDLE handle,

@ -207,8 +207,7 @@ DWORD WINAPI TargetEventsThread(PVOID param) {
}
default: {
NOTREACHED_IN_MIGRATION();
break;
NOTREACHED();
}
}
} else if (THREAD_CTRL_NEW_JOB_TRACKER == key) {
@ -239,12 +238,11 @@ DWORD WINAPI TargetEventsThread(PVOID param) {
return 0;
} else {
// We have not implemented more commands.
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
}
NOTREACHED_IN_MIGRATION();
return 0;
NOTREACHED();
}
} // namespace
@ -327,8 +325,7 @@ BrokerServicesBase::~BrokerServicesBase() {
if (job_thread_.is_valid() &&
WAIT_TIMEOUT == ::WaitForSingleObject(job_thread_.get(), 5000)) {
// Cannot clean broker services.
NOTREACHED_IN_MIGRATION();
return;
NOTREACHED();
}
}

@ -294,7 +294,7 @@ bool InterceptionManager::SetupInterceptionInfo(const InterceptionData& data,
if ((dll_info->unload_module) && (data.function != kUnloadDLLDummyFunction)) {
// Can't specify a dll for both patch and unload.
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
FunctionInfo* function = reinterpret_cast<FunctionInfo*>(*buffer);

@ -65,7 +65,7 @@ const ULONG64* GetSupportedMitigations() {
if (!::GetProcessMitigationPolicy(::GetCurrentProcess(),
ProcessMitigationOptionsMask,
&mitigations, mits_size)) {
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
}

@ -54,8 +54,7 @@ bool ThreadProcessDispatcher::SetupService(InterceptionManager* manager,
case IpcTag::CREATETHREAD:
// There is no explicit policy for these services.
// Intercepts are set up in SetupBasicInterceptions(), not here.
NOTREACHED_IN_MIGRATION();
return false;
NOTREACHED();
default:
return false;

@ -167,8 +167,7 @@ bool ConfigBase::IsOnCreatingThread() const {
#if DCHECK_IS_ON()
return GetCurrentThreadId() == creating_thread_id_;
#else // DCHECK_IS_ON()
NOTREACHED_IN_MIGRATION();
return true;
NOTREACHED();
#endif
}
@ -252,7 +251,6 @@ sandbox::LowLevelPolicy* ConfigBase::PolicyMaker() {
ResultCode ConfigBase::AllowFileAccess(FileSemantics semantics,
const wchar_t* pattern) {
if (!FileSystemPolicy::GenerateRules(pattern, semantics, PolicyMaker())) {
NOTREACHED_IN_MIGRATION();
return SBOX_ERROR_BAD_PARAMS;
}
return SBOX_ALL_OK;
@ -263,7 +261,6 @@ ResultCode ConfigBase::SetFakeGdiInit() {
<< "Enable MITIGATION_WIN32K_DISABLE before adding win32k policy "
"rules.";
if (!ProcessMitigationsWin32KLockdownPolicy::GenerateRules(PolicyMaker())) {
NOTREACHED_IN_MIGRATION();
return SBOX_ERROR_BAD_PARAMS;
}
return SBOX_ALL_OK;
@ -279,7 +276,6 @@ ResultCode ConfigBase::AllowExtraDlls(const wchar_t* pattern) {
<< "Enable MITIGATION_FORCE_MS_SIGNED_BINS before adding signed "
"policy rules.";
if (!SignedPolicy::GenerateRules(pattern, PolicyMaker())) {
NOTREACHED_IN_MIGRATION();
return SBOX_ERROR_BAD_PARAMS;
}
}
@ -723,8 +719,7 @@ EvalResult PolicyBase::EvalPolicy(IpcTag service,
}
for (size_t i = 0; i < params->count; i++) {
if (!params->parameters[i].IsValid()) {
NOTREACHED_IN_MIGRATION();
return SIGNAL_ALARM;
NOTREACHED();
}
}
PolicyProcessor pol_evaluator(policy->entry[static_cast<size_t>(service)]);

@ -34,8 +34,7 @@ NTSTATUS ServiceResolverThunk::ResolveTarget(const void* module,
reinterpret_cast<void*>(module_image.GetProcAddress(function_name));
if (!*address) {
NOTREACHED_IN_MIGRATION();
return STATUS_UNSUCCESSFUL;
NOTREACHED();
}
return STATUS_SUCCESS;

@ -267,8 +267,7 @@ bool SharedMemIPCServer::InvokeCallback(const ServerControl* service_context,
break;
}
default: {
NOTREACHED_IN_MIGRATION();
break;
NOTREACHED();
}
}
}

@ -108,8 +108,7 @@ Dispatcher* TopLevelDispatcher::OnMessageReady(IPCParams* ipc,
Dispatcher* dispatcher = GetDispatcher(ipc->ipc_tag);
if (!dispatcher) {
NOTREACHED_IN_MIGRATION();
return nullptr;
NOTREACHED();
}
return dispatcher->OnMessageReady(ipc, callback);
}
@ -122,8 +121,7 @@ bool TopLevelDispatcher::SetupService(InterceptionManager* manager,
Dispatcher* dispatcher = GetDispatcher(service);
if (!dispatcher) {
NOTREACHED_IN_MIGRATION();
return false;
NOTREACHED();
}
return dispatcher->SetupService(manager, service);
}

@ -139,8 +139,7 @@ ResultCode CreateAltDesktop(HWINSTA winsta, HDESK* desktop) {
std::wstring GetFullDesktopName(HWINSTA winsta, HDESK desktop) {
if (!desktop) {
NOTREACHED_IN_MIGRATION();
return std::wstring();
NOTREACHED();
}
std::wstring name;

@ -70,7 +70,7 @@ TEST(CFGSupportTests, LongJmp) {
}
// Call another function to perform the longjmp.
PerformLongJump();
NOTREACHED_IN_MIGRATION();
NOTREACHED();
}
// Make sure Microsoft binaries compiled with CFG cannot call indirect pointers