From 33b07ba96c6a22bdd4a1132c0b15b25873fc0c26 Mon Sep 17 00:00:00 2001 From: Greg Kaiser <gkaiser@google.com> Date: Wed, 5 Sep 2018 08:04:01 -0700 Subject: [PATCH] UsbTransportSniffer: Defensively use 'final' UsbTransportSniffer invokes the virtual method Close() within its destructor. This usage is fine right now, but if a future class inherited from UsbTransportSniffer and overrode the Close() method, then this destructor would not act as expected. To protect against this, we declare Close() 'final' in UsbTransportSniffer, and add a comment. Test: Treehugger Change-Id: I6182d84e7caf67cb06f37c22c6203ad6d6e57f34 --- fastboot/fuzzy_fastboot/usb_transport_sniffer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastboot/fuzzy_fastboot/usb_transport_sniffer.h b/fastboot/fuzzy_fastboot/usb_transport_sniffer.h index 89cc00993d..8119aea395 100644 --- a/fastboot/fuzzy_fastboot/usb_transport_sniffer.h +++ b/fastboot/fuzzy_fastboot/usb_transport_sniffer.h @@ -72,7 +72,7 @@ class UsbTransportSniffer : public UsbTransport { virtual ssize_t Read(void* data, size_t len) override; virtual ssize_t Write(const void* data, size_t len) override; - virtual int Close() override; + virtual int Close() override final; // note usage in destructor virtual int Reset() override; const std::vector<Event> Transfers(); -- GitLab