From c2109a5aca3a68916f6ba0969248e2bc73f49979 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 18 Sep 2023 10:22:22 +0900 Subject: [PATCH 1/3] Move instead of copy --- src/DHTRoutingTableDeserializer.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/DHTRoutingTableDeserializer.cc b/src/DHTRoutingTableDeserializer.cc index 87b757a6..63a82c70 100644 --- a/src/DHTRoutingTableDeserializer.cc +++ b/src/DHTRoutingTableDeserializer.cc @@ -196,8 +196,8 @@ void DHTRoutingTableDeserializer::deserialize(const std::string& filename) nodes.push_back(node); } - localNode_ = localNode; - nodes_ = nodes; + localNode_ = std::move(localNode); + nodes_ = std::move(nodes); A2_LOG_INFO("DHT routing table was loaded successfully"); } From 1fd0e52c41eed159d196c256770cac128ff976f2 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 18 Sep 2023 10:22:45 +0900 Subject: [PATCH 2/3] Call the member function of IOFile --- src/UriListParser.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/UriListParser.cc b/src/UriListParser.cc index ca021cb3..7fd2b217 100644 --- a/src/UriListParser.cc +++ b/src/UriListParser.cc @@ -77,7 +77,7 @@ void UriListParser::parseNext(std::vector& uris, Option& op) if (fp_->eof()) { break; } - else if (!fp_) { + else if (!*fp_) { throw DL_ABORT_EX("UriListParser:I/O error."); } else { @@ -102,7 +102,7 @@ void UriListParser::parseNext(std::vector& uris, Option& op) if (fp_->eof()) { return; } - else if (!fp_) { + else if (!*fp_) { throw DL_ABORT_EX("UriListParser:I/O error."); } } From 4c250f8a5ddd73e2bb02d8573bc66432c1dca7b2 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 18 Sep 2023 11:00:00 +0900 Subject: [PATCH 3/3] Bail out if pieceLength is 0 --- src/DefaultBtProgressInfoFile.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/DefaultBtProgressInfoFile.cc b/src/DefaultBtProgressInfoFile.cc index 7a5da1c3..b2161828 100644 --- a/src/DefaultBtProgressInfoFile.cc +++ b/src/DefaultBtProgressInfoFile.cc @@ -289,6 +289,10 @@ void DefaultBtProgressInfoFile::load() pieceLength = ntohl(pieceLength); } + if (pieceLength == 0) { + throw DL_ABORT_EX("piece length must not be 0"); + } + uint64_t totalLength; READ_CHECK(fp, &totalLength, sizeof(totalLength)); if (version >= 1) {