Skip to content

Commit 37f0680

Browse files
committed
Call set_block_unconfirmable on populate() errors.
1 parent a33a9c7 commit 37f0680

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

include/bitcoin/node/error.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ enum error_t : uint8_t
8383
validate5,
8484
validate6,
8585
validate7,
86+
validate8,
87+
validate9,
8688
confirm1,
8789
confirm2,
8890
confirm3,

src/chasers/chaser_validate.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -221,33 +221,37 @@ void chaser_validate::validate_block(const header_link& link) NOEXCEPT
221221
else if (!block->populate(ctx))
222222
{
223223
ec = system::error::relative_time_locked;
224+
if (!query.set_block_unconfirmable(link))
225+
ec = error::validate3;
224226
}
225227
else if (!query.populate(*block))
226228
{
227229
ec = system::error::missing_previous_output;
230+
if (!query.set_block_unconfirmable(link))
231+
ec = error::validate4;
228232
}
229233
else if ((ec = block->accept(ctx, subsidy_interval_, initial_subsidy_)))
230234
{
231235
if (!query.set_block_unconfirmable(link))
232-
ec = error::validate3;
236+
ec = error::validate5;
233237
}
234238
else if ((ec = block->connect(ctx)))
235239
{
236240
if (!query.set_block_unconfirmable(link))
237-
ec = error::validate4;
241+
ec = error::validate6;
238242
}
239243
else if (!query.set_block_valid(link, block->fees()))
240244
{
241-
ec = error::validate5;
245+
ec = error::validate7;
242246
}
243247
else if (!query.set_prevouts(link, *block))
244248
{
245-
ec = error::validate6;
249+
ec = error::validate8;
246250
}
247251
else if (!query.set_filter_body(link, *block))
248252
{
249253
// TODO: this should not bypass checkpoint/milestone if enabled.
250-
ec = error::validate7;
254+
ec = error::validate9;
251255
}
252256
else
253257
{
@@ -275,7 +279,9 @@ void chaser_validate::complete_block(const code& ec, const header_link& link,
275279
ec == error::validate4 ||
276280
ec == error::validate5 ||
277281
ec == error::validate6 ||
278-
ec == error::validate7)
282+
ec == error::validate7 ||
283+
ec == error::validate8 ||
284+
ec == error::validate9)
279285
{
280286
fault(ec);
281287
return;

src/error.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ DEFINE_ERROR_T_MESSAGE_MAP(error)
7373
{ validate5, "validate5" },
7474
{ validate6, "validate6" },
7575
{ validate7, "validate7" },
76+
{ validate8, "validate8" },
77+
{ validate9, "validate9" },
7678
{ confirm1, "confirm1" },
7779
{ confirm2, "confirm2" },
7880
{ confirm3, "confirm3" },

0 commit comments

Comments
 (0)