diff --git a/src/data_transfer.cpp b/src/data_transfer.cpp
index ee3a1a7d3bbc56ba67eaca626d94477ac9a699b6..d4c78dda64e8cfc5229357a7cf930a7479c82160 100644
--- a/src/data_transfer.cpp
+++ b/src/data_transfer.cpp
@@ -329,10 +329,10 @@ private:
     {
         dht::ThreadPool::computation().run([this]() {
             while (!input_.eof() && onRecvCb_) {
-                std::vector<uint8_t> buf;
+                std::vector<char> buf;
                 buf.resize(MAX_BUFFER_SIZE);
 
-                input_.read(reinterpret_cast<char*>(&buf[0]), buf.size());
+                input_.read(&buf[0], buf.size());
                 buf.resize(input_.gcount());
                 if (buf.size()) {
                     std::lock_guard<std::mutex> lk {infoMutex_};
@@ -340,7 +340,7 @@ private:
                     metaInfo_->updateInfo(info_);
                 }
                 if (onRecvCb_)
-                    onRecvCb_(std::string_view((const char*)buf.data(), buf.size()));
+                    onRecvCb_(std::string_view(buf.data(), buf.size()));
             }
             JAMI_DBG() << "FTP#" << getId() << ": sent " << info_.bytesProgress << " bytes";
             if (internalCompletionCb_)