From 7598f09295703c66b3e11c210807373d5443fb5b Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Tue, 19 Jan 2016 11:59:13 +0100 Subject: [PATCH] nova: check for valid platform_pd pointer --- repos/base-nova/src/core/platform_thread.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/repos/base-nova/src/core/platform_thread.cc b/repos/base-nova/src/core/platform_thread.cc index d17a9d1a0..ff1e7d636 100644 --- a/repos/base-nova/src/core/platform_thread.cc +++ b/repos/base-nova/src/core/platform_thread.cc @@ -231,6 +231,11 @@ void Platform_thread::resume() if (!is_worker()) { uint8_t res; do { + if (!_pd) { + PERR("protection domain undefined %s - resuming thread failed", + __PRETTY_FUNCTION__); + return; + } res = create_sc(_sel_sc(), _pd->pd_sel(), _sel_ec(), Qpd(Qpd::DEFAULT_QUANTUM, _priority)); } while (res == Nova::NOVA_PD_OOM && Nova::NOVA_OK == _pager->handle_oom()); @@ -316,6 +321,10 @@ unsigned long Platform_thread::pager_object_badge() const Weak_ptr Platform_thread::address_space() { + if (!_pd) { + PERR("protection domain undefined %s", __PRETTY_FUNCTION__); + return Weak_ptr(); + } return _pd->Address_space::weak_ptr(); }