From cdc30f1dd16e6f990ca0ac53edd80bfb7f8f35a1 Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Mon, 5 Oct 2009 00:10:35 +0000 Subject: [PATCH] fixed bug where pieces may have been requested before the metadata was received --- ChangeLog | 2 ++ src/policy.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index 67bef06ed..fb0f615e5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -83,6 +83,8 @@ release 0.14.7 * improved forward compatibility in DHT * added set_piece_hashes that takes a callback to the python binding * fixed division by zero in get_peer_info() + * fixed bug where pieces may have been requested before the metadata + was received release 0.14.6 diff --git a/src/policy.cpp b/src/policy.cpp index 6bd11d65f..d32f759bd 100644 --- a/src/policy.cpp +++ b/src/policy.cpp @@ -128,6 +128,9 @@ namespace libtorrent if (c.no_download()) return; if (t.upload_mode()) return; + // don't request pieces before we have the metadata + if (!t.valid_metadata()) return; + TORRENT_ASSERT(t.valid_metadata()); TORRENT_ASSERT(c.peer_info_struct() != 0 || !dynamic_cast(&c)); int num_requests = c.desired_queue_size()