diff options
author | David Anderson <dvander@google.com> | 2018-09-04 14:32:54 -0700 |
---|---|---|
committer | David Anderson <dvander@google.com> | 2018-09-04 15:01:12 -0700 |
commit | 03de645aac4dac3b19900b3d30a29b2d10249ad6 (patch) | |
tree | 4a0e3816decf6cf0250684fc1ec6f8d588ce3cc4 /fastboot/usb_windows.cpp | |
parent | 33dcdb808b7d60107d527c22815d586b51836836 (diff) | |
download | system_core-03de645aac4dac3b19900b3d30a29b2d10249ad6.tar.gz system_core-03de645aac4dac3b19900b3d30a29b2d10249ad6.tar.bz2 system_core-03de645aac4dac3b19900b3d30a29b2d10249ad6.zip |
fastbootd: Fix transport ownership.
This change moves Transport ownership back out of FastBootDriver.
Callers of set_transport must ensure that the previous transport is
destroyed. In addition, deleting a transport now ensures that it is
closed.
Bug: 78793464
Test: fastboot, fuzzy_fastboot works
Change-Id: I8f9ed2f7d5b09fd0820b2677d087a027378f26db
Diffstat (limited to 'fastboot/usb_windows.cpp')
-rw-r--r-- | fastboot/usb_windows.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fastboot/usb_windows.cpp b/fastboot/usb_windows.cpp index 8c60a7173..b00edb3fd 100644 --- a/fastboot/usb_windows.cpp +++ b/fastboot/usb_windows.cpp @@ -69,7 +69,7 @@ struct usb_handle { class WindowsUsbTransport : public UsbTransport { public: WindowsUsbTransport(std::unique_ptr<usb_handle> handle) : handle_(std::move(handle)) {} - ~WindowsUsbTransport() override = default; + ~WindowsUsbTransport() override; ssize_t Read(void* data, size_t len) override; ssize_t Write(const void* data, size_t len) override; @@ -250,6 +250,10 @@ void usb_kick(usb_handle* handle) { } } +WindowsUsbTransport::~WindowsUsbTransport() { + Close(); +} + int WindowsUsbTransport::Close() { DBG("usb_close\n"); |