From e5d1c554e56d07bd5a2a475928ec54687ec87608 Mon Sep 17 00:00:00 2001 From: Shrenuj Bansal Date: Wed, 6 Sep 2023 17:49:03 -0400 Subject: [PATCH 1/2] Return error if success count for proof validation or data activations is 0 --- actors/miner/src/lib.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/actors/miner/src/lib.rs b/actors/miner/src/lib.rs index 763e9523e..b52733f0a 100644 --- a/actors/miner/src/lib.rs +++ b/actors/miner/src/lib.rs @@ -1814,6 +1814,9 @@ impl Actor { proven_batch_gen.add_successes(validation_batch.size()); } let proven_batch = proven_batch_gen.gen(); + if proven_batch.success_count == 0 { + return Err(actor_error!(illegal_argument, "no valid proofs specified")); + } // Activate data and verify CommD matches the declared one. let data_activation_inputs = proven_activation_inputs @@ -1832,6 +1835,9 @@ impl Actor { // Activate data for proven sectors. let (data_batch, data_activations) = activate_sectors_pieces(rt, data_activation_inputs, params.require_activation_success)?; + if data_batch.success_count == 0 { + return Err(actor_error!(illegal_argument, "all data activations failed")); + } // Successful data activation is required for sector activation. let successful_sector_activations = data_batch.successes(&proven_activation_inputs); From abe5b0c66e926172f99211f65863032412067bcd Mon Sep 17 00:00:00 2001 From: Shrenuj Bansal Date: Wed, 6 Sep 2023 18:17:01 -0400 Subject: [PATCH 2/2] Add similar checks for prove_replica_updates2 --- actors/miner/src/lib.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/actors/miner/src/lib.rs b/actors/miner/src/lib.rs index b52733f0a..110da1939 100644 --- a/actors/miner/src/lib.rs +++ b/actors/miner/src/lib.rs @@ -1123,6 +1123,9 @@ impl Actor { return Err(actor_error!(illegal_argument, "no valid updates")); } let proven_batch = proven_batch_gen.gen(); + if proven_batch.success_count == 0 { + return Err(actor_error!(illegal_argument, "no valid proofs specified")); + } // Activate data. let data_activation_inputs: Vec = proven_manifests @@ -1139,6 +1142,9 @@ impl Actor { // Activate data for proven updates. let (data_batch, data_activations) = activate_sectors_pieces(rt, data_activation_inputs, params.require_activation_success)?; + if data_batch.success_count == 0 { + return Err(actor_error!(illegal_argument, "all data activations failed")); + } // Successful data activation is required for sector activation. let successful_manifests = data_batch.successes(&proven_manifests);