diff --git a/mtp/ffs/MtpDevHandle.cpp b/mtp/ffs/MtpDevHandle.cpp index d6a8b820..e22ba55b 100644 --- a/mtp/ffs/MtpDevHandle.cpp +++ b/mtp/ffs/MtpDevHandle.cpp @@ -33,8 +33,9 @@ constexpr char mtp_dev_path[] = "/dev/mtp_usb"; -MtpDevHandle::MtpDevHandle() - : mFd(-1) {}; +MtpDevHandle::MtpDevHandle(int controlFd) { + mFd.reset(controlFd); +} MtpDevHandle::~MtpDevHandle() {} diff --git a/mtp/ffs/MtpDevHandle.h b/mtp/ffs/MtpDevHandle.h index 4b069288..4ea1fdb2 100644 --- a/mtp/ffs/MtpDevHandle.h +++ b/mtp/ffs/MtpDevHandle.h @@ -25,7 +25,7 @@ private: android::base::unique_fd mFd; public: - MtpDevHandle(); + MtpDevHandle(int controlFd); ~MtpDevHandle(); int read(void *data, size_t len); int write(const void *data, size_t len); diff --git a/mtp/ffs/MtpServer.cpp b/mtp/ffs/MtpServer.cpp index 5f17ff2f..fa670243 100755 --- a/mtp/ffs/MtpServer.cpp +++ b/mtp/ffs/MtpServer.cpp @@ -123,7 +123,7 @@ MtpServer::MtpServer(IMtpDatabase* database, int controlFd, bool ptp, mHandle = aio_compat ? new MtpFfsCompatHandle(controlFd) : new MtpFfsHandle(controlFd); mHandle->writeDescriptors(mPtp); } else { - mHandle = new MtpDevHandle(); + mHandle = new MtpDevHandle(controlFd); } }