From 41640da2035ced973fb1d425475781b83e5bcac7 Mon Sep 17 00:00:00 2001 From: Matteo Cypriani Date: Thu, 3 Nov 2016 15:54:50 -0400 Subject: [PATCH] [Positioner] Mobile: fix copy constructor segfault --- owlps-positioner/mobile.cc | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/owlps-positioner/mobile.cc b/owlps-positioner/mobile.cc index fec9c11..fdc8d65 100644 --- a/owlps-positioner/mobile.cc +++ b/owlps-positioner/mobile.cc @@ -21,7 +21,7 @@ Mobile::Mobile(const Mobile &m): - WifiDevice(m), last_results(m.last_results) + WifiDevice(m), last_request(nullptr), last_results(m.last_results) { update_last_request() ; } @@ -42,13 +42,20 @@ void Mobile::update_last_request() { if (last_results.empty()) { - delete last_request ; - last_request = nullptr ; + if (last_request) + { + delete last_request; + last_request = nullptr; + } return ; } if (! last_request) - last_request = new Request(*last_results.get_request()) ; + { + const Request *r = last_results.get_request(); + if (r) + last_request = new Request(*r); + } else *last_request = *last_results.get_request() ;